*** ./expected/create_function_1.out Thu Mar 7 10:40:02 2002 --- ./results/create_function_1.out Thu Mar 7 10:43:12 2002 *************** *** 5,36 **** RETURNS widget AS '/home/chriskl/pgsql/src/test/regress/regress.so' LANGUAGE 'c'; ! NOTICE: ProcedureCreate: type widget is not yet defined ! CREATE FUNCTION widget_out(opaque) ! RETURNS opaque ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'c'; ! CREATE FUNCTION check_primary_key () ! RETURNS opaque ! AS '/home/chriskl/pgsql/src/test/regress/../../../contrib/spi/refint.so' ! LANGUAGE 'C'; ! CREATE FUNCTION check_foreign_key () ! RETURNS opaque ! AS '/home/chriskl/pgsql/src/test/regress/../../../contrib/spi/refint.so' ! LANGUAGE 'C'; ! CREATE FUNCTION autoinc () ! RETURNS opaque ! AS '/home/chriskl/pgsql/src/test/regress/../../../contrib/spi/autoinc.so' ! LANGUAGE 'C'; ! CREATE FUNCTION funny_dup17 () ! RETURNS opaque ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; ! CREATE FUNCTION ttdummy () ! RETURNS opaque ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; ! CREATE FUNCTION set_ttdummy (int4) ! RETURNS int4 ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; --- 5,12 ---- RETURNS widget AS '/home/chriskl/pgsql/src/test/regress/regress.so' LANGUAGE 'c'; ! WARNING: ProcedureCreate: type widget is not yet defined ! server closed the connection unexpectedly ! This probably means the server terminated abnormally ! before or while processing the request. ! connection to server was lost ====================================================================== *** ./expected/create_type.out Thu Sep 6 10:07:42 2001 --- ./results/create_type.out Thu Mar 7 10:43:12 2002 *************** *** 1,40 **** ! -- ! -- CREATE_TYPE ! -- ! CREATE TYPE widget ( ! internallength = 24, ! input = widget_in, ! output = widget_out, ! alignment = double ! ); ! CREATE TYPE city_budget ( ! internallength = 16, ! input = int44in, ! output = int44out, ! element = int4 ! ); ! -- Test type-related default values (broken in releases before PG 7.2) ! CREATE TYPE int42 ( ! internallength = 4, ! input = int4in, ! output = int4out, ! alignment = int4, ! default = 42, ! passedbyvalue ! ); ! CREATE TYPE text_w_default ( ! internallength = variable, ! input = textin, ! output = textout, ! alignment = int4, ! default = 'zippo' ! ); ! CREATE TABLE default_test (f1 text_w_default, f2 int42); ! INSERT INTO default_test DEFAULT VALUES; ! SELECT * FROM default_test; ! f1 | f2 ! -------+---- ! zippo | 42 ! (1 row) - DROP TABLE default_test; --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/create_table.out Thu Mar 7 09:53:51 2002 --- ./results/create_table.out Thu Mar 7 10:43:12 2002 *************** *** 1,188 **** ! -- ! -- CREATE_TABLE ! -- ! -- ! -- CLASS DEFINITIONS ! -- ! CREATE TABLE hobbies_r ( ! name text, ! person text ! ); ! CREATE TABLE equipment_r ( ! name text, ! hobby text ! ); ! CREATE TABLE onek ( ! unique1 int4, ! unique2 int4, ! two int4, ! four int4, ! ten int4, ! twenty int4, ! hundred int4, ! thousand int4, ! twothousand int4, ! fivethous int4, ! tenthous int4, ! odd int4, ! even int4, ! stringu1 name, ! stringu2 name, ! string4 name ! ); ! CREATE TABLE tenk1 ( ! unique1 int4, ! unique2 int4, ! two int4, ! four int4, ! ten int4, ! twenty int4, ! hundred int4, ! thousand int4, ! twothousand int4, ! fivethous int4, ! tenthous int4, ! odd int4, ! even int4, ! stringu1 name, ! stringu2 name, ! string4 name ! ); ! CREATE TABLE tenk2 ( ! unique1 int4, ! unique2 int4, ! two int4, ! four int4, ! ten int4, ! twenty int4, ! hundred int4, ! thousand int4, ! twothousand int4, ! fivethous int4, ! tenthous int4, ! odd int4, ! even int4, ! stringu1 name, ! stringu2 name, ! string4 name ! ); ! CREATE TABLE person ( ! name text, ! age int4, ! location point ! ); ! CREATE TABLE emp ( ! salary int4, ! manager name ! ) INHERITS (person); ! CREATE TABLE student ( ! gpa float8 ! ) INHERITS (person); ! CREATE TABLE stud_emp ( ! percent int4 ! ) INHERITS (emp, student); ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "name" ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "age" ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "location" ! CREATE TABLE city ( ! name name, ! location box, ! budget city_budget ! ); ! CREATE TABLE dept ( ! dname name, ! mgrname text ! ); ! CREATE TABLE slow_emp4000 ( ! home_base box ! ); ! CREATE TABLE fast_emp4000 ( ! home_base box ! ); ! CREATE TABLE road ( ! name text, ! thepath path ! ); ! CREATE TABLE ihighway () INHERITS (road); ! CREATE TABLE shighway ( ! surface text ! ) INHERITS (road); ! CREATE TABLE real_city ( ! pop int4, ! cname text, ! outline path ! ); ! -- ! -- test the "star" operators a bit more thoroughly -- this time, ! -- throw in lots of NULL fields... ! -- ! -- a is the type root ! -- b and c inherit from a (one-level single inheritance) ! -- d inherits from b and c (two-level multiple inheritance) ! -- e inherits from c (two-level single inheritance) ! -- f inherits from e (three-level single inheritance) ! -- ! CREATE TABLE a_star ( ! class char, ! a int4 ! ); ! CREATE TABLE b_star ( ! b text ! ) INHERITS (a_star); ! CREATE TABLE c_star ( ! c name ! ) INHERITS (a_star); ! CREATE TABLE d_star ( ! d float8 ! ) INHERITS (b_star, c_star); ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "class" ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "a" ! CREATE TABLE e_star ( ! e int2 ! ) INHERITS (c_star); ! CREATE TABLE f_star ( ! f polygon ! ) INHERITS (e_star); ! CREATE TABLE aggtest ( ! a int2, ! b float4 ! ); ! CREATE TABLE hash_i4_heap ( ! seqno int4, ! random int4 ! ); ! CREATE TABLE hash_name_heap ( ! seqno int4, ! random name ! ); ! CREATE TABLE hash_txt_heap ( ! seqno int4, ! random text ! ); ! CREATE TABLE hash_f8_heap ( ! seqno int4, ! random float8 ! ); ! -- don't include the hash_ovfl_heap stuff in the distribution ! -- the data set is too large for what it's worth ! -- ! -- CREATE TABLE hash_ovfl_heap ( ! -- x int4, ! -- y int4 ! -- ); ! CREATE TABLE bt_i4_heap ( ! seqno int4, ! random int4 ! ); ! CREATE TABLE bt_name_heap ( ! seqno name, ! random int4 ! ); ! CREATE TABLE bt_txt_heap ( ! seqno text, ! random int4 ! ); ! CREATE TABLE bt_f8_heap ( ! seqno float8, ! random int4 ! ); --- 1,2 ---- ! psql: FATAL: The database system is starting up ! ====================================================================== *** ./expected/create_function_2.out Thu Mar 7 10:40:02 2002 --- ./results/create_function_2.out Thu Mar 7 10:43:13 2002 *************** *** 1,56 **** ! -- ! -- CREATE_FUNCTION_2 ! -- ! CREATE FUNCTION hobbies(person) ! RETURNS setof hobbies_r ! AS 'select * from hobbies_r where person = $1.name' ! LANGUAGE 'sql'; ! CREATE FUNCTION hobby_construct(text, text) ! RETURNS hobbies_r ! AS 'select $1 as name, $2 as hobby' ! LANGUAGE 'sql'; ! CREATE FUNCTION hobbies_by_name(hobbies_r.name%TYPE) ! RETURNS hobbies_r.person%TYPE ! AS 'select person from hobbies_r where name = $1' ! LANGUAGE 'sql'; ! INFO: hobbies_r.name%TYPE converted to text ! INFO: hobbies_r.person%TYPE converted to text ! CREATE FUNCTION equipment(hobbies_r) ! RETURNS setof equipment_r ! AS 'select * from equipment_r where hobby = $1.name' ! LANGUAGE 'sql'; ! CREATE FUNCTION user_relns() ! RETURNS setof name ! AS 'select relname ! from pg_class ! where relname !~ ''pg_.*'' and ! relkind <> ''i'' ' ! LANGUAGE 'sql'; ! CREATE FUNCTION pt_in_widget(point, widget) ! RETURNS bool ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; ! CREATE FUNCTION overpaid(emp) ! RETURNS bool ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; ! CREATE FUNCTION boxarea(box) ! RETURNS float8 ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; ! CREATE FUNCTION interpt_pp(path, path) ! RETURNS point ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'C'; ! CREATE FUNCTION reverse_name(name) ! RETURNS name ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'c'; ! CREATE FUNCTION oldstyle_length(int4, text) ! RETURNS int4 ! AS '/home/chriskl/pgsql/src/test/regress/regress.so' ! LANGUAGE 'c'; ! -- ! -- Function dynamic loading ! -- ! LOAD '/home/chriskl/pgsql/src/test/regress/regress.so'; --- 1,2 ---- ! psql: FATAL: The database system is starting up ! ====================================================================== *** ./expected/copy.out Thu Mar 7 10:40:02 2002 --- ./results/copy.out Thu Mar 7 10:43:13 2002 *************** *** 1,33 **** ! -- ! -- COPY ! -- ! -- CLASS POPULATION ! -- (any resemblance to real life is purely coincidental) ! -- ! COPY aggtest FROM '/home/chriskl/pgsql/src/test/regress/data/agg.data'; ! COPY onek FROM '/home/chriskl/pgsql/src/test/regress/data/onek.data'; ! COPY onek TO '/home/chriskl/pgsql/src/test/regress/results/onek.data'; ! DELETE FROM onek; ! COPY onek FROM '/home/chriskl/pgsql/src/test/regress/results/onek.data'; ! COPY tenk1 FROM '/home/chriskl/pgsql/src/test/regress/data/tenk.data'; ! COPY slow_emp4000 FROM '/home/chriskl/pgsql/src/test/regress/data/rect.data'; ! COPY person FROM '/home/chriskl/pgsql/src/test/regress/data/person.data'; ! COPY emp FROM '/home/chriskl/pgsql/src/test/regress/data/emp.data'; ! COPY student FROM '/home/chriskl/pgsql/src/test/regress/data/student.data'; ! COPY stud_emp FROM '/home/chriskl/pgsql/src/test/regress/data/stud_emp.data'; ! COPY road FROM '/home/chriskl/pgsql/src/test/regress/data/streets.data'; ! COPY real_city FROM '/home/chriskl/pgsql/src/test/regress/data/real_city.data'; ! COPY hash_i4_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hash.data'; ! COPY hash_name_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hash.data'; ! COPY hash_txt_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hash.data'; ! COPY hash_f8_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hash.data'; ! -- the data in this file has a lot of duplicates in the index key ! -- fields, leading to long bucket chains and lots of table expansion. ! -- this is therefore a stress test of the bucket overflow code (unlike ! -- the data in hash.data, which has unique index keys). ! -- ! -- COPY hash_ovfl_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hashovfl.data'; ! COPY bt_i4_heap FROM '/home/chriskl/pgsql/src/test/regress/data/desc.data'; ! COPY bt_name_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hash.data'; ! COPY bt_txt_heap FROM '/home/chriskl/pgsql/src/test/regress/data/desc.data'; ! COPY bt_f8_heap FROM '/home/chriskl/pgsql/src/test/regress/data/hash.data'; --- 1,2 ---- ! psql: FATAL: The database system is starting up ! ====================================================================== *** ./expected/constraints.out Thu Mar 7 10:40:02 2002 --- ./results/constraints.out Thu Mar 7 10:43:14 2002 *************** *** 1,374 **** ! -- ! -- CONSTRAINTS ! -- Constraints can be specified with: ! -- - DEFAULT clause ! -- - CHECK clauses ! -- - PRIMARY KEY clauses ! -- - UNIQUE clauses ! -- ! -- ! -- DEFAULT syntax ! -- ! CREATE TABLE DEFAULT_TBL (i int DEFAULT 100, ! x text DEFAULT 'vadim', f float8 DEFAULT 123.456); ! INSERT INTO DEFAULT_TBL VALUES (1, 'thomas', 57.0613); ! INSERT INTO DEFAULT_TBL VALUES (1, 'bruce'); ! INSERT INTO DEFAULT_TBL (i, f) VALUES (2, 987.654); ! INSERT INTO DEFAULT_TBL (x) VALUES ('marc'); ! INSERT INTO DEFAULT_TBL VALUES (3, null, 1.0); ! SELECT '' AS five, * FROM DEFAULT_TBL; ! five | i | x | f ! ------+-----+--------+--------- ! | 1 | thomas | 57.0613 ! | 1 | bruce | 123.456 ! | 2 | vadim | 987.654 ! | 100 | marc | 123.456 ! | 3 | | 1 ! (5 rows) - CREATE SEQUENCE DEFAULT_SEQ; - CREATE TABLE DEFAULTEXPR_TBL (i1 int DEFAULT 100 + (200-199) * 2, - i2 int DEFAULT nextval('default_seq')); - INSERT INTO DEFAULTEXPR_TBL VALUES (-1, -2); - INSERT INTO DEFAULTEXPR_TBL (i1) VALUES (-3); - INSERT INTO DEFAULTEXPR_TBL (i2) VALUES (-4); - INSERT INTO DEFAULTEXPR_TBL (i2) VALUES (NULL); - SELECT '' AS four, * FROM DEFAULTEXPR_TBL; - four | i1 | i2 - ------+-----+---- - | -1 | -2 - | -3 | 1 - | 102 | -4 - | 102 | - (4 rows) - - -- syntax errors - -- test for extraneous comma - CREATE TABLE error_tbl (i int DEFAULT (100, )); - ERROR: parser: parse error at or near "," - -- this will fail because gram.y uses b_expr not a_expr for defaults, - -- to avoid a shift/reduce conflict that arises from NOT NULL being - -- part of the column definition syntax: - CREATE TABLE error_tbl (b1 bool DEFAULT 1 IN (1, 2)); - ERROR: parser: parse error at or near "IN" - -- this should work, however: - CREATE TABLE error_tbl (b1 bool DEFAULT (1 IN (1, 2))); - DROP TABLE error_tbl; - -- - -- CHECK syntax - -- - CREATE TABLE CHECK_TBL (x int, - CONSTRAINT CHECK_CON CHECK (x > 3)); - INSERT INTO CHECK_TBL VALUES (5); - INSERT INTO CHECK_TBL VALUES (4); - INSERT INTO CHECK_TBL VALUES (3); - ERROR: ExecAppend: rejected due to CHECK constraint check_con - INSERT INTO CHECK_TBL VALUES (2); - ERROR: ExecAppend: rejected due to CHECK constraint check_con - INSERT INTO CHECK_TBL VALUES (6); - INSERT INTO CHECK_TBL VALUES (1); - ERROR: ExecAppend: rejected due to CHECK constraint check_con - SELECT '' AS three, * FROM CHECK_TBL; - three | x - -------+--- - | 5 - | 4 - | 6 - (3 rows) - - CREATE SEQUENCE CHECK_SEQ; - CREATE TABLE CHECK2_TBL (x int, y text, z int, - CONSTRAINT SEQUENCE_CON - CHECK (x > 3 and y <> 'check failed' and z < 8)); - INSERT INTO CHECK2_TBL VALUES (4, 'check ok', -2); - INSERT INTO CHECK2_TBL VALUES (1, 'x check failed', -2); - ERROR: ExecAppend: rejected due to CHECK constraint sequence_con - INSERT INTO CHECK2_TBL VALUES (5, 'z check failed', 10); - ERROR: ExecAppend: rejected due to CHECK constraint sequence_con - INSERT INTO CHECK2_TBL VALUES (0, 'check failed', -2); - ERROR: ExecAppend: rejected due to CHECK constraint sequence_con - INSERT INTO CHECK2_TBL VALUES (6, 'check failed', 11); - ERROR: ExecAppend: rejected due to CHECK constraint sequence_con - INSERT INTO CHECK2_TBL VALUES (7, 'check ok', 7); - SELECT '' AS two, * from CHECK2_TBL; - two | x | y | z - -----+---+----------+---- - | 4 | check ok | -2 - | 7 | check ok | 7 - (2 rows) - - -- - -- Check constraints on INSERT - -- - CREATE SEQUENCE INSERT_SEQ; - CREATE TABLE INSERT_TBL (x INT DEFAULT nextval('insert_seq'), - y TEXT DEFAULT '-NULL-', - z INT DEFAULT -1 * currval('insert_seq'), - CONSTRAINT INSERT_CON CHECK (x >= 3 AND y <> 'check failed' AND x < 8), - CHECK (x + z = 0)); - INSERT INTO INSERT_TBL(x,z) VALUES (2, -2); - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - SELECT '' AS zero, * FROM INSERT_TBL; - zero | x | y | z - ------+---+---+--- - (0 rows) - - SELECT 'one' AS one, nextval('insert_seq'); - one | nextval - -----+--------- - one | 1 - (1 row) - - INSERT INTO INSERT_TBL(y) VALUES ('Y'); - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - INSERT INTO INSERT_TBL(y) VALUES ('Y'); - INSERT INTO INSERT_TBL(x,z) VALUES (1, -2); - ERROR: ExecAppend: rejected due to CHECK constraint $2 - INSERT INTO INSERT_TBL(z,x) VALUES (-7, 7); - INSERT INTO INSERT_TBL VALUES (5, 'check failed', -5); - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - INSERT INTO INSERT_TBL VALUES (7, '!check failed', -7); - INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-'); - SELECT '' AS four, * FROM INSERT_TBL; - four | x | y | z - ------+---+---------------+---- - | 3 | Y | -3 - | 7 | -NULL- | -7 - | 7 | !check failed | -7 - | 4 | -!NULL- | -4 - (4 rows) - - INSERT INTO INSERT_TBL(y,z) VALUES ('check failed', 4); - ERROR: ExecAppend: rejected due to CHECK constraint $2 - INSERT INTO INSERT_TBL(x,y) VALUES (5, 'check failed'); - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - INSERT INTO INSERT_TBL(x,y) VALUES (5, '!check failed'); - INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-'); - SELECT '' AS six, * FROM INSERT_TBL; - six | x | y | z - -----+---+---------------+---- - | 3 | Y | -3 - | 7 | -NULL- | -7 - | 7 | !check failed | -7 - | 4 | -!NULL- | -4 - | 5 | !check failed | -5 - | 6 | -!NULL- | -6 - (6 rows) - - SELECT 'seven' AS one, nextval('insert_seq'); - one | nextval - -------+--------- - seven | 7 - (1 row) - - INSERT INTO INSERT_TBL(y) VALUES ('Y'); - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - SELECT 'eight' AS one, currval('insert_seq'); - one | currval - -------+--------- - eight | 8 - (1 row) - - -- According to SQL92, it is OK to insert a record that gives rise to NULL - -- constraint-condition results. Postgres used to reject this, but it - -- was wrong: - INSERT INTO INSERT_TBL VALUES (null, null, null); - SELECT '' AS nine, * FROM INSERT_TBL; - nine | x | y | z - ------+---+---------------+---- - | 3 | Y | -3 - | 7 | -NULL- | -7 - | 7 | !check failed | -7 - | 4 | -!NULL- | -4 - | 5 | !check failed | -5 - | 6 | -!NULL- | -6 - | | | - (7 rows) - - -- - -- Check inheritance of defaults and constraints - -- - CREATE TABLE INSERT_CHILD (cx INT default 42, - cy INT CHECK (cy > x)) - INHERITS (INSERT_TBL); - INSERT INTO INSERT_CHILD(x,z,cy) VALUES (7,-7,11); - INSERT INTO INSERT_CHILD(x,z,cy) VALUES (7,-7,6); - ERROR: ExecAppend: rejected due to CHECK constraint insert_child_cy - INSERT INTO INSERT_CHILD(x,z,cy) VALUES (6,-7,7); - ERROR: ExecAppend: rejected due to CHECK constraint $1 - INSERT INTO INSERT_CHILD(x,y,z,cy) VALUES (6,'check failed',-6,7); - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - SELECT * FROM INSERT_CHILD; - x | y | z | cx | cy - ---+--------+----+----+---- - 7 | -NULL- | -7 | 42 | 11 - (1 row) - - DROP TABLE INSERT_CHILD; - -- - -- Check constraints on INSERT INTO - -- - DELETE FROM INSERT_TBL; - DROP SEQUENCE INSERT_SEQ; - CREATE SEQUENCE INSERT_SEQ START 4; - CREATE TABLE tmp (xd INT, yd TEXT, zd INT); - INSERT INTO tmp VALUES (null, 'Y', null); - INSERT INTO tmp VALUES (5, '!check failed', null); - INSERT INTO tmp VALUES (null, 'try again', null); - INSERT INTO INSERT_TBL(y) select yd from tmp; - NOTICE: insert_seq.nextval: sequence was re-created - SELECT '' AS three, * FROM INSERT_TBL; - three | x | y | z - -------+---+---------------+---- - | 4 | Y | -4 - | 5 | !check failed | -5 - | 6 | try again | -6 - (3 rows) - - INSERT INTO INSERT_TBL SELECT * FROM tmp WHERE yd = 'try again'; - INSERT INTO INSERT_TBL(y,z) SELECT yd, -7 FROM tmp WHERE yd = 'try again'; - INSERT INTO INSERT_TBL(y,z) SELECT yd, -8 FROM tmp WHERE yd = 'try again'; - ERROR: ExecAppend: rejected due to CHECK constraint insert_con - SELECT '' AS four, * FROM INSERT_TBL; - four | x | y | z - ------+---+---------------+---- - | 4 | Y | -4 - | 5 | !check failed | -5 - | 6 | try again | -6 - | | try again | - | 7 | try again | -7 - (5 rows) - - DROP TABLE tmp; - -- - -- Check constraints on UPDATE - -- - UPDATE INSERT_TBL SET x = NULL WHERE x = 5; - UPDATE INSERT_TBL SET x = 6 WHERE x = 6; - UPDATE INSERT_TBL SET x = -z, z = -x; - UPDATE INSERT_TBL SET x = z, z = x; - ERROR: ExecReplace: rejected due to CHECK constraint insert_con - SELECT * FROM INSERT_TBL; - x | y | z - ---+---------------+---- - 4 | Y | -4 - | try again | - 7 | try again | -7 - 5 | !check failed | - 6 | try again | -6 - (5 rows) - - -- DROP TABLE INSERT_TBL; - -- - -- Check constraints on COPY FROM - -- - CREATE TABLE COPY_TBL (x INT, y TEXT, z INT, - CONSTRAINT COPY_CON - CHECK (x > 3 AND y <> 'check failed' AND x < 7 )); - COPY COPY_TBL FROM '/home/chriskl/pgsql/src/test/regress/data/constro.data'; - SELECT '' AS two, * FROM COPY_TBL; - two | x | y | z - -----+---+---------------+--- - | 4 | !check failed | 5 - | 6 | OK | 4 - (2 rows) - - COPY COPY_TBL FROM '/home/chriskl/pgsql/src/test/regress/data/constrf.data'; - ERROR: copy: line 2, CopyFrom: rejected due to CHECK constraint copy_con - SELECT * FROM COPY_TBL; - x | y | z - ---+---------------+--- - 4 | !check failed | 5 - 6 | OK | 4 - (2 rows) - - -- - -- Primary keys - -- - CREATE TABLE PRIMARY_TBL (i int PRIMARY KEY, t text); - INFO: CREATE TABLE / PRIMARY KEY will create implicit index 'primary_tbl_pkey' for table 'primary_tbl' - INSERT INTO PRIMARY_TBL VALUES (1, 'one'); - INSERT INTO PRIMARY_TBL VALUES (2, 'two'); - INSERT INTO PRIMARY_TBL VALUES (1, 'three'); - ERROR: Cannot insert a duplicate key into unique index primary_tbl_pkey - INSERT INTO PRIMARY_TBL VALUES (4, 'three'); - INSERT INTO PRIMARY_TBL VALUES (5, 'one'); - INSERT INTO PRIMARY_TBL (t) VALUES ('six'); - ERROR: ExecAppend: Fail to add null value in not null attribute i - SELECT '' AS four, * FROM PRIMARY_TBL; - four | i | t - ------+---+------- - | 1 | one - | 2 | two - | 4 | three - | 5 | one - (4 rows) - - DROP TABLE PRIMARY_TBL; - CREATE TABLE PRIMARY_TBL (i int, t text, - PRIMARY KEY(i,t)); - INFO: CREATE TABLE / PRIMARY KEY will create implicit index 'primary_tbl_pkey' for table 'primary_tbl' - INSERT INTO PRIMARY_TBL VALUES (1, 'one'); - INSERT INTO PRIMARY_TBL VALUES (2, 'two'); - INSERT INTO PRIMARY_TBL VALUES (1, 'three'); - INSERT INTO PRIMARY_TBL VALUES (4, 'three'); - INSERT INTO PRIMARY_TBL VALUES (5, 'one'); - INSERT INTO PRIMARY_TBL (t) VALUES ('six'); - ERROR: ExecAppend: Fail to add null value in not null attribute i - SELECT '' AS three, * FROM PRIMARY_TBL; - three | i | t - -------+---+------- - | 1 | one - | 2 | two - | 1 | three - | 4 | three - | 5 | one - (5 rows) - - DROP TABLE PRIMARY_TBL; - -- - -- Unique keys - -- - CREATE TABLE UNIQUE_TBL (i int UNIQUE, t text); - INFO: CREATE TABLE / UNIQUE will create implicit index 'unique_tbl_i_key' for table 'unique_tbl' - INSERT INTO UNIQUE_TBL VALUES (1, 'one'); - INSERT INTO UNIQUE_TBL VALUES (2, 'two'); - INSERT INTO UNIQUE_TBL VALUES (1, 'three'); - ERROR: Cannot insert a duplicate key into unique index unique_tbl_i_key - INSERT INTO UNIQUE_TBL VALUES (4, 'four'); - INSERT INTO UNIQUE_TBL VALUES (5, 'one'); - INSERT INTO UNIQUE_TBL (t) VALUES ('six'); - INSERT INTO UNIQUE_TBL (t) VALUES ('seven'); - SELECT '' AS five, * FROM UNIQUE_TBL; - five | i | t - ------+---+------- - | 1 | one - | 2 | two - | 4 | four - | 5 | one - | | six - | | seven - (6 rows) - - DROP TABLE UNIQUE_TBL; - CREATE TABLE UNIQUE_TBL (i int, t text, - UNIQUE(i,t)); - INFO: CREATE TABLE / UNIQUE will create implicit index 'unique_tbl_i_key' for table 'unique_tbl' - INSERT INTO UNIQUE_TBL VALUES (1, 'one'); - INSERT INTO UNIQUE_TBL VALUES (2, 'two'); - INSERT INTO UNIQUE_TBL VALUES (1, 'three'); - INSERT INTO UNIQUE_TBL VALUES (1, 'one'); - ERROR: Cannot insert a duplicate key into unique index unique_tbl_i_key - INSERT INTO UNIQUE_TBL VALUES (5, 'one'); - INSERT INTO UNIQUE_TBL (t) VALUES ('six'); - SELECT '' AS five, * FROM UNIQUE_TBL; - five | i | t - ------+---+------- - | 1 | one - | 2 | two - | 1 | three - | 5 | one - | | six - (5 rows) - - DROP TABLE UNIQUE_TBL; --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/triggers.out Thu Mar 7 09:53:51 2002 --- ./results/triggers.out Thu Mar 7 10:43:15 2002 *************** *** 1,256 **** ! -- ! -- TRIGGERS ! -- ! create table pkeys (pkey1 int4 not null, pkey2 text not null); ! create table fkeys (fkey1 int4, fkey2 text, fkey3 int); ! create table fkeys2 (fkey21 int4, fkey22 text, pkey23 int not null); ! create index fkeys_i on fkeys (fkey1, fkey2); ! create index fkeys2_i on fkeys2 (fkey21, fkey22); ! create index fkeys2p_i on fkeys2 (pkey23); ! insert into pkeys values (10, '1'); ! insert into pkeys values (20, '2'); ! insert into pkeys values (30, '3'); ! insert into pkeys values (40, '4'); ! insert into pkeys values (50, '5'); ! insert into pkeys values (60, '6'); ! create unique index pkeys_i on pkeys (pkey1, pkey2); ! -- ! -- For fkeys: ! -- (fkey1, fkey2) --> pkeys (pkey1, pkey2) ! -- (fkey3) --> fkeys2 (pkey23) ! -- ! create trigger check_fkeys_pkey_exist ! before insert or update on fkeys ! for each row ! execute procedure ! check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2'); ! create trigger check_fkeys_pkey2_exist ! before insert or update on fkeys ! for each row ! execute procedure check_primary_key ('fkey3', 'fkeys2', 'pkey23'); ! -- ! -- For fkeys2: ! -- (fkey21, fkey22) --> pkeys (pkey1, pkey2) ! -- ! create trigger check_fkeys2_pkey_exist ! before insert or update on fkeys2 ! for each row ! execute procedure ! check_primary_key ('fkey21', 'fkey22', 'pkeys', 'pkey1', 'pkey2'); ! -- ! -- For pkeys: ! -- ON DELETE/UPDATE (pkey1, pkey2) CASCADE: ! -- fkeys (fkey1, fkey2) and fkeys2 (fkey21, fkey22) ! -- ! create trigger check_pkeys_fkey_cascade ! before delete or update on pkeys ! for each row ! execute procedure ! check_foreign_key (2, 'cascade', 'pkey1', 'pkey2', ! 'fkeys', 'fkey1', 'fkey2', 'fkeys2', 'fkey21', 'fkey22'); ! -- ! -- For fkeys2: ! -- ON DELETE/UPDATE (pkey23) RESTRICT: ! -- fkeys (fkey3) ! -- ! create trigger check_fkeys2_fkey_restrict ! before delete or update on fkeys2 ! for each row ! execute procedure check_foreign_key (1, 'restrict', 'pkey23', 'fkeys', 'fkey3'); ! insert into fkeys2 values (10, '1', 1); ! insert into fkeys2 values (30, '3', 2); ! insert into fkeys2 values (40, '4', 5); ! insert into fkeys2 values (50, '5', 3); ! -- no key in pkeys ! insert into fkeys2 values (70, '5', 3); ! ERROR: check_fkeys2_pkey_exist: tuple references non-existing key in pkeys ! insert into fkeys values (10, '1', 2); ! insert into fkeys values (30, '3', 3); ! insert into fkeys values (40, '4', 2); ! insert into fkeys values (50, '5', 2); ! -- no key in pkeys ! insert into fkeys values (70, '5', 1); ! ERROR: check_fkeys_pkey_exist: tuple references non-existing key in pkeys ! -- no key in fkeys2 ! insert into fkeys values (60, '6', 4); ! ERROR: check_fkeys_pkey2_exist: tuple references non-existing key in fkeys2 ! delete from pkeys where pkey1 = 30 and pkey2 = '3'; ! ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys ! delete from pkeys where pkey1 = 40 and pkey2 = '4'; ! update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5'; ! ERROR: check_fkeys2_fkey_restrict: tuple referenced in fkeys ! update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1'; ! DROP TABLE pkeys; ! DROP TABLE fkeys; ! DROP TABLE fkeys2; ! -- -- I've disabled the funny_dup17 test because the new semantics ! -- -- of AFTER ROW triggers, which get now fired at the end of a ! -- -- query allways, cause funny_dup17 to enter an endless loop. ! -- -- ! -- -- Jan ! -- ! -- create table dup17 (x int4); ! -- ! -- create trigger dup17_before ! -- before insert on dup17 ! -- for each row ! -- execute procedure ! -- funny_dup17 () ! -- ; ! -- ! -- insert into dup17 values (17); ! -- select count(*) from dup17; ! -- insert into dup17 values (17); ! -- select count(*) from dup17; ! -- ! -- drop trigger dup17_before on dup17; ! -- ! -- create trigger dup17_after ! -- after insert on dup17 ! -- for each row ! -- execute procedure ! -- funny_dup17 () ! -- ; ! -- insert into dup17 values (13); ! -- select count(*) from dup17 where x = 13; ! -- insert into dup17 values (13); ! -- select count(*) from dup17 where x = 13; ! -- ! -- DROP TABLE dup17; ! create sequence ttdummy_seq increment 10 start 0 minvalue 0; ! create table tttest ( ! price_id int4, ! price_val int4, ! price_on int4, ! price_off int4 default 999999 ! ); ! create trigger ttdummy ! before delete or update on tttest ! for each row ! execute procedure ! ttdummy (price_on, price_off); ! create trigger ttserial ! before insert or update on tttest ! for each row ! execute procedure ! autoinc (price_on, ttdummy_seq); ! insert into tttest values (1, 1, null); ! insert into tttest values (2, 2, null); ! insert into tttest values (3, 3, 0); ! select * from tttest; ! price_id | price_val | price_on | price_off ! ----------+-----------+----------+----------- ! 1 | 1 | 10 | 999999 ! 2 | 2 | 20 | 999999 ! 3 | 3 | 30 | 999999 ! (3 rows) - delete from tttest where price_id = 2; - select * from tttest; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 3 | 3 | 30 | 999999 - 2 | 2 | 20 | 40 - (3 rows) - - -- what do we see ? - -- get current prices - select * from tttest where price_off = 999999; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 3 | 3 | 30 | 999999 - (2 rows) - - -- change price for price_id == 3 - update tttest set price_val = 30 where price_id = 3; - select * from tttest; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 3 | 30 | 50 | 999999 - 3 | 3 | 30 | 50 - (4 rows) - - -- now we want to change pric_id in ALL tuples - -- this gets us not what we need - update tttest set price_id = 5 where price_id = 3; - select * from tttest; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 3 | 3 | 30 | 50 - 5 | 30 | 60 | 999999 - 3 | 30 | 50 | 60 - (5 rows) - - -- restore data as before last update: - select set_ttdummy(0); - set_ttdummy - ------------- - 1 - (1 row) - - delete from tttest where price_id = 5; - update tttest set price_off = 999999 where price_val = 30; - select * from tttest; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 3 | 3 | 30 | 50 - 3 | 30 | 50 | 999999 - (4 rows) - - -- and try change price_id now! - update tttest set price_id = 5 where price_id = 3; - select * from tttest; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 5 | 3 | 30 | 50 - 5 | 30 | 50 | 999999 - (4 rows) - - -- isn't it what we need ? - select set_ttdummy(1); - set_ttdummy - ------------- - 0 - (1 row) - - -- we want to correct some "date" - update tttest set price_on = -1 where price_id = 1; - ERROR: ttdummy (tttest): you can't change price_on and/or price_off columns (use set_ttdummy) - -- but this doesn't work - -- try in this way - select set_ttdummy(0); - set_ttdummy - ------------- - 1 - (1 row) - - update tttest set price_on = -1 where price_id = 1; - select * from tttest; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 2 | 2 | 20 | 40 - 5 | 3 | 30 | 50 - 5 | 30 | 50 | 999999 - 1 | 1 | -1 | 999999 - (4 rows) - - -- isn't it what we need ? - -- get price for price_id == 5 as it was @ "date" 35 - select * from tttest where price_on <= 35 and price_off > 35 and price_id = 5; - price_id | price_val | price_on | price_off - ----------+-----------+----------+----------- - 5 | 3 | 30 | 50 - (1 row) - - drop table tttest; - drop sequence ttdummy_seq; --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/create_misc.out Thu Mar 7 09:53:51 2002 --- ./results/create_misc.out Thu Mar 7 10:43:14 2002 *************** *** 1,153 **** ! -- ! -- CREATE_MISC ! -- ! -- CLASS POPULATION ! -- (any resemblance to real life is purely coincidental) ! -- ! INSERT INTO tenk2 VALUES (tenk1.*); ! SELECT * INTO TABLE onek2 FROM onek; ! INSERT INTO fast_emp4000 VALUES (slow_emp4000.*); ! SELECT * ! INTO TABLE Bprime ! FROM tenk1 ! WHERE unique2 < 1000; ! INSERT INTO hobbies_r (name, person) ! SELECT 'posthacking', p.name ! FROM person* p ! WHERE p.name = 'mike' or p.name = 'jeff'; ! INSERT INTO hobbies_r (name, person) ! SELECT 'basketball', p.name ! FROM person p ! WHERE p.name = 'joe' or p.name = 'sally'; ! INSERT INTO hobbies_r (name) VALUES ('skywalking'); ! INSERT INTO equipment_r (name, hobby) VALUES ('advil', 'posthacking'); ! INSERT INTO equipment_r (name, hobby) VALUES ('peet''s coffee', 'posthacking'); ! INSERT INTO equipment_r (name, hobby) VALUES ('hightops', 'basketball'); ! INSERT INTO equipment_r (name, hobby) VALUES ('guts', 'skywalking'); ! SELECT * ! INTO TABLE ramp ! FROM road ! WHERE name ~ '.*Ramp'; ! INSERT INTO ihighway ! SELECT * ! FROM road ! WHERE name ~ 'I- .*'; ! INSERT INTO shighway ! SELECT * ! FROM road ! WHERE name ~ 'State Hwy.*'; ! UPDATE shighway ! SET surface = 'asphalt'; ! INSERT INTO a_star (class, a) VALUES ('a', 1); ! INSERT INTO a_star (class, a) VALUES ('a', 2); ! INSERT INTO a_star (class) VALUES ('a'); ! INSERT INTO b_star (class, a, b) VALUES ('b', 3, 'mumble'::text); ! INSERT INTO b_star (class, a) VALUES ('b', 4); ! INSERT INTO b_star (class, b) VALUES ('b', 'bumble'::text); ! INSERT INTO b_star (class) VALUES ('b'); ! INSERT INTO c_star (class, a, c) VALUES ('c', 5, 'hi mom'::name); ! INSERT INTO c_star (class, a) VALUES ('c', 6); ! INSERT INTO c_star (class, c) VALUES ('c', 'hi paul'::name); ! INSERT INTO c_star (class) VALUES ('c'); ! INSERT INTO d_star (class, a, b, c, d) ! VALUES ('d', 7, 'grumble'::text, 'hi sunita'::name, '0.0'::float8); ! INSERT INTO d_star (class, a, b, c) ! VALUES ('d', 8, 'stumble'::text, 'hi koko'::name); ! INSERT INTO d_star (class, a, b, d) ! VALUES ('d', 9, 'rumble'::text, '1.1'::float8); ! INSERT INTO d_star (class, a, c, d) ! VALUES ('d', 10, 'hi kristin'::name, '10.01'::float8); ! INSERT INTO d_star (class, b, c, d) ! VALUES ('d', 'crumble'::text, 'hi boris'::name, '100.001'::float8); ! INSERT INTO d_star (class, a, b) ! VALUES ('d', 11, 'fumble'::text); ! INSERT INTO d_star (class, a, c) ! VALUES ('d', 12, 'hi avi'::name); ! INSERT INTO d_star (class, a, d) ! VALUES ('d', 13, '1000.0001'::float8); ! INSERT INTO d_star (class, b, c) ! VALUES ('d', 'tumble'::text, 'hi andrew'::name); ! INSERT INTO d_star (class, b, d) ! VALUES ('d', 'humble'::text, '10000.00001'::float8); ! INSERT INTO d_star (class, c, d) ! VALUES ('d', 'hi ginger'::name, '100000.000001'::float8); ! INSERT INTO d_star (class, a) VALUES ('d', 14); ! INSERT INTO d_star (class, b) VALUES ('d', 'jumble'::text); ! INSERT INTO d_star (class, c) VALUES ('d', 'hi jolly'::name); ! INSERT INTO d_star (class, d) VALUES ('d', '1000000.0000001'::float8); ! INSERT INTO d_star (class) VALUES ('d'); ! INSERT INTO e_star (class, a, c, e) ! VALUES ('e', 15, 'hi carol'::name, '-1'::int2); ! INSERT INTO e_star (class, a, c) ! VALUES ('e', 16, 'hi bob'::name); ! INSERT INTO e_star (class, a, e) ! VALUES ('e', 17, '-2'::int2); ! INSERT INTO e_star (class, c, e) ! VALUES ('e', 'hi michelle'::name, '-3'::int2); ! INSERT INTO e_star (class, a) ! VALUES ('e', 18); ! INSERT INTO e_star (class, c) ! VALUES ('e', 'hi elisa'::name); ! INSERT INTO e_star (class, e) ! VALUES ('e', '-4'::int2); ! INSERT INTO f_star (class, a, c, e, f) ! VALUES ('f', 19, 'hi claire'::name, '-5'::int2, '(1,3),(2,4)'::polygon); ! INSERT INTO f_star (class, a, c, e) ! VALUES ('f', 20, 'hi mike'::name, '-6'::int2); ! INSERT INTO f_star (class, a, c, f) ! VALUES ('f', 21, 'hi marcel'::name, '(11,44),(22,55),(33,66)'::polygon); ! INSERT INTO f_star (class, a, e, f) ! VALUES ('f', 22, '-7'::int2, '(111,555),(222,666),(333,777),(444,888)'::polygon); ! INSERT INTO f_star (class, c, e, f) ! VALUES ('f', 'hi keith'::name, '-8'::int2, ! '(1111,3333),(2222,4444)'::polygon); ! INSERT INTO f_star (class, a, c) ! VALUES ('f', 24, 'hi marc'::name); ! INSERT INTO f_star (class, a, e) ! VALUES ('f', 25, '-9'::int2); ! INSERT INTO f_star (class, a, f) ! VALUES ('f', 26, '(11111,33333),(22222,44444)'::polygon); ! INSERT INTO f_star (class, c, e) ! VALUES ('f', 'hi allison'::name, '-10'::int2); ! INSERT INTO f_star (class, c, f) ! VALUES ('f', 'hi jeff'::name, ! '(111111,333333),(222222,444444)'::polygon); ! INSERT INTO f_star (class, e, f) ! VALUES ('f', '-11'::int2, '(1111111,3333333),(2222222,4444444)'::polygon); ! INSERT INTO f_star (class, a) VALUES ('f', 27); ! INSERT INTO f_star (class, c) VALUES ('f', 'hi carl'::name); ! INSERT INTO f_star (class, e) VALUES ('f', '-12'::int2); ! INSERT INTO f_star (class, f) ! VALUES ('f', '(11111111,33333333),(22222222,44444444)'::polygon); ! INSERT INTO f_star (class) VALUES ('f'); ! -- ! -- for internal portal (cursor) tests ! -- ! CREATE TABLE iportaltest ( ! i int4, ! d float4, ! p polygon ! ); ! INSERT INTO iportaltest (i, d, p) ! VALUES (1, 3.567, '(3.0,1.0),(4.0,2.0)'::polygon); ! INSERT INTO iportaltest (i, d, p) ! VALUES (2, 89.05, '(4.0,2.0),(3.0,1.0)'::polygon); ! --- ! --- test creation of SERIAL column ! --- ! CREATE TABLE serialTest (f1 text, f2 serial); ! NOTICE: CREATE TABLE will create implicit sequence 'serialtest_f2_seq' for SERIAL column 'serialtest.f2' ! NOTICE: CREATE TABLE / UNIQUE will create implicit index 'serialtest_f2_key' for table 'serialtest' ! INSERT INTO serialTest VALUES ('foo'); ! INSERT INTO serialTest VALUES ('bar'); ! INSERT INTO serialTest VALUES ('force', 100); ! INSERT INTO serialTest VALUES ('wrong', NULL); ! ERROR: ExecAppend: Fail to add null value in not null attribute f2 ! SELECT * FROM serialTest; ! f1 | f2 ! -------+----- ! foo | 1 ! bar | 2 ! force | 100 ! (3 rows) --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/create_aggregate.out Mon Jul 17 11:05:37 2000 --- ./results/create_aggregate.out Thu Mar 7 10:43:15 2002 *************** *** 1,19 **** ! -- ! -- CREATE_AGGREGATE ! -- ! -- all functions CREATEd ! CREATE AGGREGATE newavg ( ! sfunc = int4_accum, basetype = int4, stype = _numeric, ! finalfunc = numeric_avg, ! initcond1 = '{0,0,0}' ! ); ! -- without finalfunc; test obsolete spellings 'sfunc1' etc ! CREATE AGGREGATE newsum ( ! sfunc1 = int4pl, basetype = int4, stype1 = int4, ! initcond1 = '0' ! ); ! -- value-independent transition function ! CREATE AGGREGATE newcnt ( ! sfunc = int4inc, basetype = 'any', stype = int4, ! initcond = '0' ! ); --- 1,2 ---- ! psql: FATAL: The database system is starting up ! ====================================================================== *** ./expected/create_operator.out Thu Jan 6 01:31:08 2000 --- ./results/create_operator.out Thu Mar 7 10:43:15 2002 *************** *** 1,28 **** ! -- ! -- CREATE_OPERATOR ! -- ! CREATE OPERATOR ## ( ! leftarg = path, ! rightarg = path, ! procedure = path_inter, ! commutator = ## ! ); ! CREATE OPERATOR <% ( ! leftarg = point, ! rightarg = widget, ! procedure = pt_in_widget, ! commutator = >% , ! negator = >=% ! ); ! CREATE OPERATOR @#@ ( ! rightarg = int4, -- left unary ! procedure = int4fac ! ); ! CREATE OPERATOR #@# ( ! leftarg = int4, -- right unary ! procedure = int4fac ! ); ! CREATE OPERATOR #%# ( ! leftarg = int4, -- right unary ! procedure = int4fac ! ); --- 1,2 ---- ! psql: FATAL: The database system is starting up ! ====================================================================== *** ./expected/create_index.out Tue Aug 28 07:23:34 2001 --- ./results/create_index.out Thu Mar 7 10:43:15 2002 *************** *** 1,83 **** ! -- ! -- CREATE_INDEX ! -- Create ancillary data structures (i.e. indices) ! -- ! -- ! -- BTREE ! -- ! CREATE INDEX onek_unique1 ON onek USING btree(unique1 int4_ops); ! CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops); ! CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops); ! CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 name_ops); ! CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops); ! CREATE INDEX tenk1_unique2 ON tenk1 USING btree(unique2 int4_ops); ! CREATE INDEX tenk1_hundred ON tenk1 USING btree(hundred int4_ops); ! CREATE INDEX tenk2_unique1 ON tenk2 USING btree(unique1 int4_ops); ! CREATE INDEX tenk2_unique2 ON tenk2 USING btree(unique2 int4_ops); ! CREATE INDEX tenk2_hundred ON tenk2 USING btree(hundred int4_ops); ! CREATE INDEX rix ON road USING btree (name text_ops); ! CREATE INDEX iix ON ihighway USING btree (name text_ops); ! CREATE INDEX six ON shighway USING btree (name text_ops); ! -- ! -- BTREE ascending/descending cases ! -- ! -- we load int4/text from pure descending data (each key is a new ! -- low key) and name/f8 from pure ascending data (each key is a new ! -- high key). we had a bug where new low keys would sometimes be ! -- "lost". ! -- ! CREATE INDEX bt_i4_index ON bt_i4_heap USING btree (seqno int4_ops); ! CREATE INDEX bt_name_index ON bt_name_heap USING btree (seqno name_ops); ! CREATE INDEX bt_txt_index ON bt_txt_heap USING btree (seqno text_ops); ! CREATE INDEX bt_f8_index ON bt_f8_heap USING btree (seqno float8_ops); ! -- ! -- BTREE partial indices ! -- ! CREATE INDEX onek2_u1_prtl ON onek2 USING btree(unique1 int4_ops) ! where unique1 < 20 or unique1 > 980; ! CREATE INDEX onek2_u2_prtl ON onek2 USING btree(unique2 int4_ops) ! where stringu1 < 'B'; ! CREATE INDEX onek2_stu1_prtl ON onek2 USING btree(stringu1 name_ops) ! where onek2.stringu1 >= 'J' and onek2.stringu1 < 'K'; ! -- ! -- RTREE ! -- ! -- rtrees use a quadratic page-splitting algorithm that takes a ! -- really, really long time. we don't test all rtree opclasses ! -- in the regression test (we check them using the sequoia 2000 ! -- benchmark). ! -- ! CREATE INDEX rect2ind ON fast_emp4000 USING rtree (home_base bigbox_ops); ! -- there's no easy way to check that this command actually is using ! -- the index, unfortunately. (EXPLAIN would work, but its output ! -- changes too often for me to want to put an EXPLAIN in the test...) ! SELECT * FROM fast_emp4000 ! WHERE home_base @ '(200,200),(2000,1000)'::box ! ORDER BY home_base USING <<; ! home_base ! ----------------------- ! (337,455),(240,359) ! (1444,403),(1346,344) ! (2 rows) - -- - -- HASH - -- - CREATE INDEX hash_i4_index ON hash_i4_heap USING hash (random int4_ops); - CREATE INDEX hash_name_index ON hash_name_heap USING hash (random name_ops); - CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); - CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops); - -- CREATE INDEX hash_ovfl_index ON hash_ovfl_heap USING hash (x int4_ops); - -- - -- Test functional index - -- - CREATE TABLE func_index_heap (f1 text, f2 text); - CREATE UNIQUE INDEX func_index_index on func_index_heap (textcat(f1,f2)); - INSERT INTO func_index_heap VALUES('ABC','DEF'); - INSERT INTO func_index_heap VALUES('AB','CDEFG'); - INSERT INTO func_index_heap VALUES('QWE','RTY'); - -- this should fail because of unique index: - INSERT INTO func_index_heap VALUES('ABCD', 'EF'); - ERROR: Cannot insert a duplicate key into unique index func_index_index - -- but this shouldn't: - INSERT INTO func_index_heap VALUES('QWERTY'); --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/inherit.out Thu Mar 7 09:53:51 2002 --- ./results/inherit.out Thu Mar 7 10:43:15 2002 *************** *** 1,536 **** ! -- ! -- Test inheritance features ! -- ! CREATE TABLE a (aa TEXT); ! CREATE TABLE b (bb TEXT) INHERITS (a); ! CREATE TABLE c (cc TEXT) INHERITS (a); ! CREATE TABLE d (dd TEXT) INHERITS (b,c,a); ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "aa" ! NOTICE: CREATE TABLE: merging multiple inherited definitions of attribute "aa" ! INSERT INTO a(aa) VALUES('aaa'); ! INSERT INTO a(aa) VALUES('aaaa'); ! INSERT INTO a(aa) VALUES('aaaaa'); ! INSERT INTO a(aa) VALUES('aaaaaa'); ! INSERT INTO a(aa) VALUES('aaaaaaa'); ! INSERT INTO a(aa) VALUES('aaaaaaaa'); ! INSERT INTO b(aa) VALUES('bbb'); ! INSERT INTO b(aa) VALUES('bbbb'); ! INSERT INTO b(aa) VALUES('bbbbb'); ! INSERT INTO b(aa) VALUES('bbbbbb'); ! INSERT INTO b(aa) VALUES('bbbbbbb'); ! INSERT INTO b(aa) VALUES('bbbbbbbb'); ! INSERT INTO c(aa) VALUES('ccc'); ! INSERT INTO c(aa) VALUES('cccc'); ! INSERT INTO c(aa) VALUES('ccccc'); ! INSERT INTO c(aa) VALUES('cccccc'); ! INSERT INTO c(aa) VALUES('ccccccc'); ! INSERT INTO c(aa) VALUES('cccccccc'); ! INSERT INTO d(aa) VALUES('ddd'); ! INSERT INTO d(aa) VALUES('dddd'); ! INSERT INTO d(aa) VALUES('ddddd'); ! INSERT INTO d(aa) VALUES('dddddd'); ! INSERT INTO d(aa) VALUES('ddddddd'); ! INSERT INTO d(aa) VALUES('dddddddd'); ! SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+---------- ! a | aaa ! a | aaaa ! a | aaaaa ! a | aaaaaa ! a | aaaaaaa ! a | aaaaaaaa ! b | bbb ! b | bbbb ! b | bbbbb ! b | bbbbbb ! b | bbbbbbb ! b | bbbbbbbb ! c | ccc ! c | cccc ! c | ccccc ! c | cccccc ! c | ccccccc ! c | cccccccc ! d | ddd ! d | dddd ! d | ddddd ! d | dddddd ! d | ddddddd ! d | dddddddd ! (24 rows) ! ! SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+----------+---- ! b | bbb | ! b | bbbb | ! b | bbbbb | ! b | bbbbbb | ! b | bbbbbbb | ! b | bbbbbbbb | ! d | ddd | ! d | dddd | ! d | ddddd | ! d | dddddd | ! d | ddddddd | ! d | dddddddd | ! (12 rows) ! ! SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----------+---- ! c | ccc | ! c | cccc | ! c | ccccc | ! c | cccccc | ! c | ccccccc | ! c | cccccccc | ! d | ddd | ! d | dddd | ! d | ddddd | ! d | dddddd | ! d | ddddddd | ! d | dddddddd | ! (12 rows) ! ! SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+----------+----+----+---- ! d | ddd | | | ! d | dddd | | | ! d | ddddd | | | ! d | dddddd | | | ! d | ddddddd | | | ! d | dddddddd | | | ! (6 rows) ! ! SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+---------- ! a | aaa ! a | aaaa ! a | aaaaa ! a | aaaaaa ! a | aaaaaaa ! a | aaaaaaaa ! (6 rows) ! ! SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+----------+---- ! b | bbb | ! b | bbbb | ! b | bbbbb | ! b | bbbbbb | ! b | bbbbbbb | ! b | bbbbbbbb | ! (6 rows) ! ! SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----------+---- ! c | ccc | ! c | cccc | ! c | ccccc | ! c | cccccc | ! c | ccccccc | ! c | cccccccc | ! (6 rows) ! ! SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+----------+----+----+---- ! d | ddd | | | ! d | dddd | | | ! d | ddddd | | | ! d | dddddd | | | ! d | ddddddd | | | ! d | dddddddd | | | ! (6 rows) ! ! UPDATE a SET aa='zzzz' WHERE aa='aaaa'; ! UPDATE ONLY a SET aa='zzzzz' WHERE aa='aaaaa'; ! UPDATE b SET aa='zzz' WHERE aa='aaa'; ! UPDATE ONLY b SET aa='zzz' WHERE aa='aaa'; ! UPDATE a SET aa='zzzzzz' WHERE aa LIKE 'aaa%'; ! SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+---------- ! a | zzzz ! a | zzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! b | bbb ! b | bbbb ! b | bbbbb ! b | bbbbbb ! b | bbbbbbb ! b | bbbbbbbb ! c | ccc ! c | cccc ! c | ccccc ! c | cccccc ! c | ccccccc ! c | cccccccc ! d | ddd ! d | dddd ! d | ddddd ! d | dddddd ! d | ddddddd ! d | dddddddd ! (24 rows) ! ! SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+----------+---- ! b | bbb | ! b | bbbb | ! b | bbbbb | ! b | bbbbbb | ! b | bbbbbbb | ! b | bbbbbbbb | ! d | ddd | ! d | dddd | ! d | ddddd | ! d | dddddd | ! d | ddddddd | ! d | dddddddd | ! (12 rows) ! ! SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----------+---- ! c | ccc | ! c | cccc | ! c | ccccc | ! c | cccccc | ! c | ccccccc | ! c | cccccccc | ! d | ddd | ! d | dddd | ! d | ddddd | ! d | dddddd | ! d | ddddddd | ! d | dddddddd | ! (12 rows) ! ! SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+----------+----+----+---- ! d | ddd | | | ! d | dddd | | | ! d | ddddd | | | ! d | dddddd | | | ! d | ddddddd | | | ! d | dddddddd | | | ! (6 rows) ! ! SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+-------- ! a | zzzz ! a | zzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! (6 rows) ! ! SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+----------+---- ! b | bbb | ! b | bbbb | ! b | bbbbb | ! b | bbbbbb | ! b | bbbbbbb | ! b | bbbbbbbb | ! (6 rows) ! ! SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----------+---- ! c | ccc | ! c | cccc | ! c | ccccc | ! c | cccccc | ! c | ccccccc | ! c | cccccccc | ! (6 rows) ! ! SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+----------+----+----+---- ! d | ddd | | | ! d | dddd | | | ! d | ddddd | | | ! d | dddddd | | | ! d | ddddddd | | | ! d | dddddddd | | | ! (6 rows) ! ! UPDATE b SET aa='new'; ! SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+---------- ! a | zzzz ! a | zzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! b | new ! b | new ! b | new ! b | new ! b | new ! b | new ! c | ccc ! c | cccc ! c | ccccc ! c | cccccc ! c | ccccccc ! c | cccccccc ! d | new ! d | new ! d | new ! d | new ! d | new ! d | new ! (24 rows) ! ! SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+-----+---- ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! (12 rows) ! ! SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----------+---- ! c | ccc | ! c | cccc | ! c | ccccc | ! c | cccccc | ! c | ccccccc | ! c | cccccccc | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! (12 rows) ! ! SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+-----+----+----+---- ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! (6 rows) ! ! SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+-------- ! a | zzzz ! a | zzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! a | zzzzzz ! (6 rows) ! ! SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+-----+---- ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! (6 rows) ! ! SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----------+---- ! c | ccc | ! c | cccc | ! c | ccccc | ! c | cccccc | ! c | ccccccc | ! c | cccccccc | ! (6 rows) ! ! SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+-----+----+----+---- ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! (6 rows) ! ! UPDATE a SET aa='new'; ! DELETE FROM ONLY c WHERE aa='new'; ! SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+----- ! a | new ! a | new ! a | new ! a | new ! a | new ! a | new ! b | new ! b | new ! b | new ! b | new ! b | new ! b | new ! d | new ! d | new ! d | new ! d | new ! d | new ! d | new ! (18 rows) ! ! SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+-----+---- ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! (12 rows) ! ! SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+-----+---- ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! d | new | ! (6 rows) ! ! SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+-----+----+----+---- ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! (6 rows) ! ! SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+----- ! a | new ! a | new ! a | new ! a | new ! a | new ! a | new ! (6 rows) ! ! SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+-----+---- ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! b | new | ! (6 rows) ! ! SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----+---- ! (0 rows) ! ! SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+-----+----+----+---- ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! d | new | | | ! (6 rows) ! ! DELETE FROM a; ! SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+---- ! (0 rows) ! ! SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+----+---- ! (0 rows) ! ! SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----+---- ! (0 rows) ! ! SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+----+----+----+---- ! (0 rows) ! ! SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; ! relname | aa ! ---------+---- ! (0 rows) ! ! SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; ! relname | aa | bb ! ---------+----+---- ! (0 rows) ! ! SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; ! relname | aa | cc ! ---------+----+---- ! (0 rows) ! ! SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; ! relname | aa | bb | cc | dd ! ---------+----+----+----+---- ! (0 rows) --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/create_view.out Sat Jun 10 13:19:14 2000 --- ./results/create_view.out Thu Mar 7 10:43:17 2002 *************** *** 1,17 **** ! -- ! -- CREATE_VIEW ! -- Virtual class definitions ! -- (this also tests the query rewrite system) ! -- ! CREATE VIEW street AS ! SELECT r.name, r.thepath, c.cname AS cname ! FROM ONLY road r, real_city c ! WHERE c.outline ## r.thepath; ! CREATE VIEW iexit AS ! SELECT ih.name, ih.thepath, ! interpt_pp(ih.thepath, r.thepath) AS exit ! FROM ihighway ih, ramp r ! WHERE ih.thepath ## r.thepath; ! CREATE VIEW toyemp AS ! SELECT name, age, location, 12*salary AS annualsal ! FROM emp; --- 1,2 ---- ! psql: FATAL: The database system is starting up ! ====================================================================== *** ./expected/sanity_check.out Tue Aug 28 07:23:34 2001 --- ./results/sanity_check.out Thu Mar 7 10:43:17 2002 *************** *** 1,63 **** ! VACUUM; ! -- ! -- sanity check, if we don't have indices the test will take years to ! -- complete. But skip TOAST relations since they will have varying ! -- names depending on the current OID counter. ! -- ! SELECT relname, relhasindex ! FROM pg_class ! WHERE relhasindex AND relkind != 't' ! ORDER BY relname; ! relname | relhasindex ! ---------------------+------------- ! bt_f8_heap | t ! bt_i4_heap | t ! bt_name_heap | t ! bt_txt_heap | t ! fast_emp4000 | t ! func_index_heap | t ! hash_f8_heap | t ! hash_i4_heap | t ! hash_name_heap | t ! hash_txt_heap | t ! ihighway | t ! num_exp_add | t ! num_exp_div | t ! num_exp_ln | t ! num_exp_log10 | t ! num_exp_mul | t ! num_exp_power_10_ln | t ! num_exp_sqrt | t ! num_exp_sub | t ! onek | t ! onek2 | t ! pg_aggregate | t ! pg_am | t ! pg_amop | t ! pg_amproc | t ! pg_attrdef | t ! pg_attribute | t ! pg_class | t ! pg_database | t ! pg_description | t ! pg_group | t ! pg_index | t ! pg_inherits | t ! pg_language | t ! pg_largeobject | t ! pg_opclass | t ! pg_operator | t ! pg_proc | t ! pg_relcheck | t ! pg_rewrite | t ! pg_shadow | t ! pg_statistic | t ! pg_trigger | t ! pg_type | t ! road | t ! serialtest | t ! shighway | t ! tenk1 | t ! tenk2 | t ! (49 rows) --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/errors.out Thu Mar 7 09:53:51 2002 --- ./results/errors.out Thu Mar 7 10:43:17 2002 *************** *** 1,233 **** ! -- ! -- ERRORS ! -- ! -- bad in postquel, but ok in postsql ! select 1 ! -- ! -- UNSUPPORTED STUFF - -- doesn't work - -- attachas nonesuch - -- - -- doesn't work - -- notify pg_class - -- - -- - -- RETRIEVE - - -- missing relation name - select - -- no such relation - select * from nonesuch; - ERROR: parser: parse error at or near "select" - -- bad name in target list - select nonesuch from pg_database; - ERROR: Attribute 'nonesuch' not found - -- bad attribute name on lhs of operator - select * from pg_database where nonesuch = pg_database.datname; - ERROR: Attribute 'nonesuch' not found - -- bad attribute name on rhs of operator - select * from pg_database where pg_database.datname = nonesuch; - ERROR: Attribute 'nonesuch' not found - -- bad select distinct on syntax, distinct attribute missing - select distinct on (foobar) from pg_database; - ERROR: parser: parse error at or near "from" - -- bad select distinct on syntax, distinct attribute not in target list - select distinct on (foobar) * from pg_database; - ERROR: Attribute 'foobar' not found - -- - -- DELETE - - -- missing relation name (this had better not wildcard!) - delete from; - ERROR: parser: parse error at or near ";" - -- no such relation - delete from nonesuch; - ERROR: Relation "nonesuch" does not exist - -- - -- DESTROY - - -- missing relation name (this had better not wildcard!) - drop table; - ERROR: parser: parse error at or near ";" - -- no such relation - drop table nonesuch; - ERROR: table "nonesuch" does not exist - -- - -- RENAME - - -- relation renaming - -- missing relation name - alter table rename; - ERROR: parser: parse error at or near ";" - -- no such relation - alter table nonesuch rename to newnonesuch; - ERROR: Relation "nonesuch" does not exist - -- no such relation - alter table nonesuch rename to stud_emp; - ERROR: Relation "nonesuch" does not exist - -- system relation - alter table stud_emp rename to pg_stud_emp; - ERROR: renamerel: Illegal class name: "pg_stud_emp" -- pg_ is reserved for system catalogs - -- conflict - alter table stud_emp rename to aggtest; - ERROR: renamerel: relation "aggtest" exists - -- self-conflict - alter table stud_emp rename to stud_emp; - ERROR: renamerel: relation "stud_emp" exists - -- attribute renaming - -- no such relation - alter table nonesuchrel rename column nonesuchatt to newnonesuchatt; - ERROR: Relation "nonesuchrel" does not exist - -- no such attribute - alter table emp rename column nonesuchatt to newnonesuchatt; - ERROR: renameatt: attribute "nonesuchatt" does not exist - -- conflict - alter table emp rename column salary to manager; - ERROR: renameatt: attribute "manager" exists - -- conflict - alter table emp rename column salary to oid; - ERROR: renameatt: attribute "oid" exists - -- - -- TRANSACTION STUFF - - -- not in a xact - abort; - WARNING: ROLLBACK: no transaction in progress - -- not in a xact - end; - WARNING: COMMIT: no transaction in progress - -- - -- DEFINE AGGREGATE - -- sfunc/finalfunc type disagreement - create aggregate newavg2 (sfunc = int4pl, - basetype = int4, - stype = int4, - finalfunc = int2um, - initcond = '0'); - ERROR: AggregateCreate: function 'int2um(int4)' does not exist - -- left out basetype - create aggregate newcnt1 (sfunc = int4inc, - stype = int4, - initcond = '0'); - ERROR: Define: "basetype" unspecified - -- - -- REMOVE INDEX - - -- missing index name - drop index; - ERROR: parser: parse error at or near ";" - -- bad index name - drop index 314159; - ERROR: parser: parse error at or near "314159" - -- no such index - drop index nonesuch; - ERROR: index "nonesuch" does not exist - -- - -- REMOVE AGGREGATE - - -- missing aggregate name - drop aggregate; - ERROR: parser: parse error at or near ";" - -- missing aggregate type - drop aggregate newcnt1; - ERROR: parser: parse error at or near ";" - -- bad aggregate name - drop aggregate 314159 (int); - ERROR: parser: parse error at or near "314159" - -- bad aggregate type - drop aggregate newcnt (nonesuch); - ERROR: RemoveAggregate: type 'nonesuch' does not exist - -- no such aggregate - drop aggregate nonesuch (int4); - ERROR: RemoveAggregate: aggregate 'nonesuch' for type integer does not exist - -- no such aggregate for type - drop aggregate newcnt (float4); - ERROR: RemoveAggregate: aggregate 'newcnt' for type real does not exist - -- - -- REMOVE FUNCTION - - -- missing function name - drop function (); - ERROR: parser: parse error at or near "(" - -- bad function name - drop function 314159(); - ERROR: parser: parse error at or near "314159" - -- no such function - drop function nonesuch(); - ERROR: RemoveFunction: function 'nonesuch()' does not exist - -- - -- REMOVE TYPE - - -- missing type name - drop type; - ERROR: parser: parse error at or near ";" - -- bad type name - drop type 314159; - ERROR: parser: parse error at or near "314159" - -- no such type - drop type nonesuch; - ERROR: RemoveType: type 'nonesuch' does not exist - -- - -- DROP OPERATOR - - -- missing everything - drop operator; - ERROR: parser: parse error at or near ";" - -- bad operator name - drop operator equals; - ERROR: parser: parse error at or near "equals" - -- missing type list - drop operator ===; - ERROR: parser: parse error at or near ";" - -- missing parentheses - drop operator int4, int4; - ERROR: parser: parse error at or near "int4" - -- missing operator name - drop operator (int4, int4); - ERROR: parser: parse error at or near "(" - -- missing type list contents - drop operator === (); - ERROR: parser: parse error at or near ")" - -- no such operator - drop operator === (int4); - ERROR: parser: argument type missing (use NONE for unary operators) - -- no such operator by that name - drop operator === (int4, int4); - ERROR: RemoveOperator: binary operator '===' taking 'int4' and 'int4' does not exist - -- no such type1 - drop operator = (nonesuch); - ERROR: parser: argument type missing (use NONE for unary operators) - -- no such type1 - drop operator = ( , int4); - ERROR: parser: parse error at or near "," - -- no such type1 - drop operator = (nonesuch, int4); - ERROR: RemoveOperator: type 'nonesuch' does not exist - -- no such type2 - drop operator = (int4, nonesuch); - ERROR: RemoveOperator: type 'nonesuch' does not exist - -- no such type2 - drop operator = (int4, ); - ERROR: parser: parse error at or near ")" - -- - -- DROP RULE - - -- missing rule name - drop rule; - ERROR: parser: parse error at or near ";" - -- bad rule name - drop rule 314159; - ERROR: parser: parse error at or near "314159" - -- no such rule - drop rule nonesuch; - ERROR: Rule or view "nonesuch" not found - -- bad keyword - drop tuple rule nonesuch; - ERROR: parser: parse error at or near "tuple" - -- no such rule - drop instance rule nonesuch; - ERROR: parser: parse error at or near "instance" - -- no such rule - drop rewrite rule nonesuch; - ERROR: parser: parse error at or near "rewrite" --- 1,2 ---- ! psql: FATAL: The database system is starting up ====================================================================== *** ./expected/select.out Mon Jul 16 13:07:00 2001 --- ./results/select.out Thu Mar 7 10:43:18 2002 *************** *** 6,84 **** -- SELECT onek.* WHERE onek.unique1 < 10 ORDER BY onek.unique1; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 0 | 998 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | AAAAAA | KMBAAA | OOOOxx ! 1 | 214 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | BAAAAA | GIAAAA | OOOOxx ! 2 | 326 | 0 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 5 | CAAAAA | OMAAAA | OOOOxx ! 3 | 431 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 6 | 7 | DAAAAA | PQAAAA | VVVVxx ! 4 | 833 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 8 | 9 | EAAAAA | BGBAAA | HHHHxx ! 5 | 541 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 10 | 11 | FAAAAA | VUAAAA | HHHHxx ! 6 | 978 | 0 | 2 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 12 | 13 | GAAAAA | QLBAAA | OOOOxx ! 7 | 647 | 1 | 3 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 14 | 15 | HAAAAA | XYAAAA | VVVVxx ! 8 | 653 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 16 | 17 | IAAAAA | DZAAAA | HHHHxx ! 9 | 49 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 18 | 19 | JAAAAA | XBAAAA | HHHHxx ! (10 rows) ! -- -- awk '{if($1<20){print $1,$14;}else{next;}}' onek.data | sort +0nr -1 -- SELECT onek.unique1, onek.stringu1 WHERE onek.unique1 < 20 ORDER BY unique1 using >; ! unique1 | stringu1 ! ---------+---------- ! 19 | TAAAAA ! 18 | SAAAAA ! 17 | RAAAAA ! 16 | QAAAAA ! 15 | PAAAAA ! 14 | OAAAAA ! 13 | NAAAAA ! 12 | MAAAAA ! 11 | LAAAAA ! 10 | KAAAAA ! 9 | JAAAAA ! 8 | IAAAAA ! 7 | HAAAAA ! 6 | GAAAAA ! 5 | FAAAAA ! 4 | EAAAAA ! 3 | DAAAAA ! 2 | CAAAAA ! 1 | BAAAAA ! 0 | AAAAAA ! (20 rows) ! -- -- awk '{if($1>980){print $1,$14;}else{next;}}' onek.data | sort +1d -2 -- SELECT onek.unique1, onek.stringu1 WHERE onek.unique1 > 980 ORDER BY stringu1 using <; ! unique1 | stringu1 ! ---------+---------- ! 988 | AMAAAA ! 989 | BMAAAA ! 990 | CMAAAA ! 991 | DMAAAA ! 992 | EMAAAA ! 993 | FMAAAA ! 994 | GMAAAA ! 995 | HMAAAA ! 996 | IMAAAA ! 997 | JMAAAA ! 998 | KMAAAA ! 999 | LMAAAA ! 981 | TLAAAA ! 982 | ULAAAA ! 983 | VLAAAA ! 984 | WLAAAA ! 985 | XLAAAA ! 986 | YLAAAA ! 987 | ZLAAAA ! (19 rows) ! -- -- awk '{if($1>980){print $1,$16;}else{next;}}' onek.data | --- 6,26 ---- -- SELECT onek.* WHERE onek.unique1 < 10 ORDER BY onek.unique1; ! ERROR: Relation "onek" does not exist -- -- awk '{if($1<20){print $1,$14;}else{next;}}' onek.data | sort +0nr -1 -- SELECT onek.unique1, onek.stringu1 WHERE onek.unique1 < 20 ORDER BY unique1 using >; ! ERROR: Relation "onek" does not exist -- -- awk '{if($1>980){print $1,$14;}else{next;}}' onek.data | sort +1d -2 -- SELECT onek.unique1, onek.stringu1 WHERE onek.unique1 > 980 ORDER BY stringu1 using <; ! ERROR: Relation "onek" does not exist -- -- awk '{if($1>980){print $1,$16;}else{next;}}' onek.data | *************** *** 87,115 **** SELECT onek.unique1, onek.string4 WHERE onek.unique1 > 980 ORDER BY string4 using <, unique1 using >; ! unique1 | string4 ! ---------+--------- ! 999 | AAAAxx ! 995 | AAAAxx ! 983 | AAAAxx ! 982 | AAAAxx ! 981 | AAAAxx ! 998 | HHHHxx ! 997 | HHHHxx ! 993 | HHHHxx ! 990 | HHHHxx ! 986 | HHHHxx ! 996 | OOOOxx ! 991 | OOOOxx ! 988 | OOOOxx ! 987 | OOOOxx ! 985 | OOOOxx ! 994 | VVVVxx ! 992 | VVVVxx ! 989 | VVVVxx ! 984 | VVVVxx ! (19 rows) ! -- -- awk '{if($1>980){print $1,$16;}else{next;}}' onek.data | --- 29,35 ---- SELECT onek.unique1, onek.string4 WHERE onek.unique1 > 980 ORDER BY string4 using <, unique1 using >; ! ERROR: Relation "onek" does not exist -- -- awk '{if($1>980){print $1,$16;}else{next;}}' onek.data | *************** *** 118,146 **** SELECT onek.unique1, onek.string4 WHERE onek.unique1 > 980 ORDER BY string4 using >, unique1 using <; ! unique1 | string4 ! ---------+--------- ! 984 | VVVVxx ! 989 | VVVVxx ! 992 | VVVVxx ! 994 | VVVVxx ! 985 | OOOOxx ! 987 | OOOOxx ! 988 | OOOOxx ! 991 | OOOOxx ! 996 | OOOOxx ! 986 | HHHHxx ! 990 | HHHHxx ! 993 | HHHHxx ! 997 | HHHHxx ! 998 | HHHHxx ! 981 | AAAAxx ! 982 | AAAAxx ! 983 | AAAAxx ! 995 | AAAAxx ! 999 | AAAAxx ! (19 rows) ! -- -- awk '{if($1<20){print $1,$16;}else{next;}}' onek.data | --- 38,44 ---- SELECT onek.unique1, onek.string4 WHERE onek.unique1 > 980 ORDER BY string4 using >, unique1 using <; ! ERROR: Relation "onek" does not exist -- -- awk '{if($1<20){print $1,$16;}else{next;}}' onek.data | *************** *** 149,178 **** SELECT onek.unique1, onek.string4 WHERE onek.unique1 < 20 ORDER BY unique1 using >, string4 using <; ! unique1 | string4 ! ---------+--------- ! 19 | OOOOxx ! 18 | VVVVxx ! 17 | HHHHxx ! 16 | OOOOxx ! 15 | VVVVxx ! 14 | AAAAxx ! 13 | OOOOxx ! 12 | AAAAxx ! 11 | OOOOxx ! 10 | AAAAxx ! 9 | HHHHxx ! 8 | HHHHxx ! 7 | VVVVxx ! 6 | OOOOxx ! 5 | HHHHxx ! 4 | HHHHxx ! 3 | VVVVxx ! 2 | OOOOxx ! 1 | OOOOxx ! 0 | OOOOxx ! (20 rows) ! -- -- awk '{if($1<20){print $1,$16;}else{next;}}' onek.data | -- sort +0n -1 +1dr -2 --- 47,53 ---- SELECT onek.unique1, onek.string4 WHERE onek.unique1 < 20 ORDER BY unique1 using >, string4 using <; ! ERROR: Relation "onek" does not exist -- -- awk '{if($1<20){print $1,$16;}else{next;}}' onek.data | -- sort +0n -1 +1dr -2 *************** *** 180,209 **** SELECT onek.unique1, onek.string4 WHERE onek.unique1 < 20 ORDER BY unique1 using <, string4 using >; ! unique1 | string4 ! ---------+--------- ! 0 | OOOOxx ! 1 | OOOOxx ! 2 | OOOOxx ! 3 | VVVVxx ! 4 | HHHHxx ! 5 | HHHHxx ! 6 | OOOOxx ! 7 | VVVVxx ! 8 | HHHHxx ! 9 | HHHHxx ! 10 | AAAAxx ! 11 | OOOOxx ! 12 | AAAAxx ! 13 | OOOOxx ! 14 | AAAAxx ! 15 | VVVVxx ! 16 | OOOOxx ! 17 | HHHHxx ! 18 | VVVVxx ! 19 | OOOOxx ! (20 rows) ! -- -- test partial btree indexes -- --- 55,61 ---- SELECT onek.unique1, onek.string4 WHERE onek.unique1 < 20 ORDER BY unique1 using <, string4 using >; ! ERROR: Relation "onek" does not exist -- -- test partial btree indexes -- *************** *** 211,295 **** -- so ANALYZE first. -- ANALYZE onek2; -- -- awk '{if($1<10){print $0;}else{next;}}' onek.data | sort +0n -1 -- SELECT onek2.* WHERE onek2.unique1 < 10; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 0 | 998 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | AAAAAA | KMBAAA | OOOOxx ! 1 | 214 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | BAAAAA | GIAAAA | OOOOxx ! 2 | 326 | 0 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 5 | CAAAAA | OMAAAA | OOOOxx ! 3 | 431 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 6 | 7 | DAAAAA | PQAAAA | VVVVxx ! 4 | 833 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 8 | 9 | EAAAAA | BGBAAA | HHHHxx ! 5 | 541 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 10 | 11 | FAAAAA | VUAAAA | HHHHxx ! 6 | 978 | 0 | 2 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 12 | 13 | GAAAAA | QLBAAA | OOOOxx ! 7 | 647 | 1 | 3 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 14 | 15 | HAAAAA | XYAAAA | VVVVxx ! 8 | 653 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 16 | 17 | IAAAAA | DZAAAA | HHHHxx ! 9 | 49 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 18 | 19 | JAAAAA | XBAAAA | HHHHxx ! (10 rows) ! -- -- awk '{if($1<20){print $1,$14;}else{next;}}' onek.data | sort +0nr -1 -- SELECT onek2.unique1, onek2.stringu1 WHERE onek2.unique1 < 20 ORDER BY unique1 using >; ! unique1 | stringu1 ! ---------+---------- ! 19 | TAAAAA ! 18 | SAAAAA ! 17 | RAAAAA ! 16 | QAAAAA ! 15 | PAAAAA ! 14 | OAAAAA ! 13 | NAAAAA ! 12 | MAAAAA ! 11 | LAAAAA ! 10 | KAAAAA ! 9 | JAAAAA ! 8 | IAAAAA ! 7 | HAAAAA ! 6 | GAAAAA ! 5 | FAAAAA ! 4 | EAAAAA ! 3 | DAAAAA ! 2 | CAAAAA ! 1 | BAAAAA ! 0 | AAAAAA ! (20 rows) ! -- -- awk '{if($1>980){print $1,$14;}else{next;}}' onek.data | sort +1d -2 -- SELECT onek2.unique1, onek2.stringu1 WHERE onek2.unique1 > 980; ! unique1 | stringu1 ! ---------+---------- ! 981 | TLAAAA ! 982 | ULAAAA ! 983 | VLAAAA ! 984 | WLAAAA ! 985 | XLAAAA ! 986 | YLAAAA ! 987 | ZLAAAA ! 988 | AMAAAA ! 989 | BMAAAA ! 990 | CMAAAA ! 991 | DMAAAA ! 992 | EMAAAA ! 993 | FMAAAA ! 994 | GMAAAA ! 995 | HMAAAA ! 996 | IMAAAA ! 997 | JMAAAA ! 998 | KMAAAA ! 999 | LMAAAA ! (19 rows) ! SELECT two, stringu1, ten, string4 INTO TABLE tmp FROM onek; -- -- awk '{print $1,$2;}' person.data | -- awk '{if(NF!=2){print $3,$2;}else{print;}}' - emp.data | --- 63,91 ---- -- so ANALYZE first. -- ANALYZE onek2; + WARNING: ANALYZE: table not found -- -- awk '{if($1<10){print $0;}else{next;}}' onek.data | sort +0n -1 -- SELECT onek2.* WHERE onek2.unique1 < 10; ! ERROR: Relation "onek2" does not exist -- -- awk '{if($1<20){print $1,$14;}else{next;}}' onek.data | sort +0nr -1 -- SELECT onek2.unique1, onek2.stringu1 WHERE onek2.unique1 < 20 ORDER BY unique1 using >; ! ERROR: Relation "onek2" does not exist -- -- awk '{if($1>980){print $1,$14;}else{next;}}' onek.data | sort +1d -2 -- SELECT onek2.unique1, onek2.stringu1 WHERE onek2.unique1 > 980; ! ERROR: Relation "onek2" does not exist SELECT two, stringu1, ten, string4 INTO TABLE tmp FROM onek; + ERROR: Relation "onek" does not exist -- -- awk '{print $1,$2;}' person.data | -- awk '{if(NF!=2){print $3,$2;}else{print;}}' - emp.data | *************** *** 298,365 **** -- -- SELECT name, age FROM person*; ??? check if different SELECT p.name, p.age FROM person* p; ! name | age ! ---------+----- ! mike | 40 ! joe | 20 ! sally | 34 ! sandra | 19 ! alex | 30 ! sue | 50 ! denise | 24 ! sarah | 88 ! teresa | 38 ! nan | 28 ! leah | 68 ! wendy | 78 ! melissa | 28 ! joan | 18 ! mary | 8 ! jane | 58 ! liza | 38 ! jean | 28 ! jenifer | 38 ! juanita | 58 ! susan | 78 ! zena | 98 ! martie | 88 ! chris | 78 ! pat | 18 ! zola | 58 ! louise | 98 ! edna | 18 ! bertha | 88 ! sumi | 38 ! koko | 88 ! gina | 18 ! rean | 48 ! sharon | 78 ! paula | 68 ! julie | 68 ! belinda | 38 ! karen | 48 ! carina | 58 ! diane | 18 ! esther | 98 ! trudy | 88 ! fanny | 8 ! carmen | 78 ! lita | 25 ! pamela | 48 ! sandy | 38 ! trisha | 88 ! vera | 78 ! velma | 68 ! sharon | 25 ! sam | 30 ! bill | 20 ! fred | 28 ! larry | 60 ! jeff | 23 ! cim | 30 ! linda | 19 ! (58 rows) ! -- -- awk '{print $1,$2;}' person.data | -- awk '{if(NF!=2){print $3,$2;}else{print;}}' - emp.data | --- 94,100 ---- -- -- SELECT name, age FROM person*; ??? check if different SELECT p.name, p.age FROM person* p; ! ERROR: Relation "person" does not exist -- -- awk '{print $1,$2;}' person.data | -- awk '{if(NF!=2){print $3,$2;}else{print;}}' - emp.data | *************** *** 368,432 **** -- sort +1nr -2 -- SELECT p.name, p.age FROM person* p ORDER BY age using >, name; ! name | age ! ---------+----- ! esther | 98 ! louise | 98 ! zena | 98 ! bertha | 88 ! koko | 88 ! martie | 88 ! sarah | 88 ! trisha | 88 ! trudy | 88 ! carmen | 78 ! chris | 78 ! sharon | 78 ! susan | 78 ! vera | 78 ! wendy | 78 ! julie | 68 ! leah | 68 ! paula | 68 ! velma | 68 ! larry | 60 ! carina | 58 ! jane | 58 ! juanita | 58 ! zola | 58 ! sue | 50 ! karen | 48 ! pamela | 48 ! rean | 48 ! mike | 40 ! belinda | 38 ! jenifer | 38 ! liza | 38 ! sandy | 38 ! sumi | 38 ! teresa | 38 ! sally | 34 ! alex | 30 ! cim | 30 ! sam | 30 ! fred | 28 ! jean | 28 ! melissa | 28 ! nan | 28 ! lita | 25 ! sharon | 25 ! denise | 24 ! jeff | 23 ! bill | 20 ! joe | 20 ! linda | 19 ! sandra | 19 ! diane | 18 ! edna | 18 ! gina | 18 ! joan | 18 ! pat | 18 ! fanny | 8 ! mary | 8 ! (58 rows) ! --- 103,106 ---- -- sort +1nr -2 -- SELECT p.name, p.age FROM person* p ORDER BY age using >, name; ! ERROR: Relation "person" does not exist ====================================================================== *** ./expected/select_into.out Mon Jun 5 01:52:53 2000 --- ./results/select_into.out Thu Mar 7 10:43:21 2002 *************** *** 5,13 **** --- 5,17 ---- INTO TABLE tmp1 FROM onek WHERE onek.unique1 < 2; + ERROR: Relation "onek" does not exist DROP TABLE tmp1; + ERROR: table "tmp1" does not exist SELECT * INTO TABLE tmp1 FROM onek2 WHERE onek2.unique1 < 2; + ERROR: Relation "onek2" does not exist DROP TABLE tmp1; + ERROR: table "tmp1" does not exist ====================================================================== *** ./expected/select_distinct.out Thu Jan 6 14:40:54 2000 --- ./results/select_distinct.out Thu Mar 7 10:43:22 2002 *************** *** 5,46 **** -- awk '{print $3;}' onek.data | sort -n | uniq -- SELECT DISTINCT two FROM tmp; ! two ! ----- ! 0 ! 1 ! (2 rows) ! -- -- awk '{print $5;}' onek.data | sort -n | uniq -- SELECT DISTINCT ten FROM tmp; ! ten ! ----- ! 0 ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! (10 rows) ! -- -- awk '{print $16;}' onek.data | sort -d | uniq -- SELECT DISTINCT string4 FROM tmp; ! string4 ! --------- ! AAAAxx ! HHHHxx ! OOOOxx ! VVVVxx ! (4 rows) ! -- -- awk '{print $3,$16,$5;}' onek.data | sort -d | uniq | -- sort +0n -1 +1d -2 +2n -3 --- 5,21 ---- -- awk '{print $3;}' onek.data | sort -n | uniq -- SELECT DISTINCT two FROM tmp; ! ERROR: Relation "tmp" does not exist -- -- awk '{print $5;}' onek.data | sort -n | uniq -- SELECT DISTINCT ten FROM tmp; ! ERROR: Relation "tmp" does not exist -- -- awk '{print $16;}' onek.data | sort -d | uniq -- SELECT DISTINCT string4 FROM tmp; ! ERROR: Relation "tmp" does not exist -- -- awk '{print $3,$16,$5;}' onek.data | sort -d | uniq | -- sort +0n -1 +1d -2 +2n -3 *************** *** 48,97 **** SELECT DISTINCT two, string4, ten FROM tmp ORDER BY two using <, string4 using <, ten using <; ! two | string4 | ten ! -----+---------+----- ! 0 | AAAAxx | 0 ! 0 | AAAAxx | 2 ! 0 | AAAAxx | 4 ! 0 | AAAAxx | 6 ! 0 | AAAAxx | 8 ! 0 | HHHHxx | 0 ! 0 | HHHHxx | 2 ! 0 | HHHHxx | 4 ! 0 | HHHHxx | 6 ! 0 | HHHHxx | 8 ! 0 | OOOOxx | 0 ! 0 | OOOOxx | 2 ! 0 | OOOOxx | 4 ! 0 | OOOOxx | 6 ! 0 | OOOOxx | 8 ! 0 | VVVVxx | 0 ! 0 | VVVVxx | 2 ! 0 | VVVVxx | 4 ! 0 | VVVVxx | 6 ! 0 | VVVVxx | 8 ! 1 | AAAAxx | 1 ! 1 | AAAAxx | 3 ! 1 | AAAAxx | 5 ! 1 | AAAAxx | 7 ! 1 | AAAAxx | 9 ! 1 | HHHHxx | 1 ! 1 | HHHHxx | 3 ! 1 | HHHHxx | 5 ! 1 | HHHHxx | 7 ! 1 | HHHHxx | 9 ! 1 | OOOOxx | 1 ! 1 | OOOOxx | 3 ! 1 | OOOOxx | 5 ! 1 | OOOOxx | 7 ! 1 | OOOOxx | 9 ! 1 | VVVVxx | 1 ! 1 | VVVVxx | 3 ! 1 | VVVVxx | 5 ! 1 | VVVVxx | 7 ! 1 | VVVVxx | 9 ! (40 rows) ! -- -- awk '{print $2;}' person.data | -- awk '{if(NF!=1){print $2;}else{print;}}' - emp.data | --- 23,29 ---- SELECT DISTINCT two, string4, ten FROM tmp ORDER BY two using <, string4 using <, ten using <; ! ERROR: Relation "tmp" does not exist -- -- awk '{print $2;}' person.data | -- awk '{if(NF!=1){print $2;}else{print;}}' - emp.data | *************** *** 100,126 **** -- sort -n -r | uniq -- SELECT DISTINCT p.age FROM person* p ORDER BY age using >; ! age ! ----- ! 98 ! 88 ! 78 ! 68 ! 60 ! 58 ! 50 ! 48 ! 40 ! 38 ! 34 ! 30 ! 28 ! 25 ! 24 ! 23 ! 20 ! 19 ! 18 ! 8 ! (20 rows) ! --- 32,35 ---- -- sort -n -r | uniq -- SELECT DISTINCT p.age FROM person* p ORDER BY age using >; ! ERROR: Relation "person" does not exist ====================================================================== *** ./expected/select_distinct_on.out Fri Jan 28 02:11:50 2000 --- ./results/select_distinct_on.out Thu Mar 7 10:43:21 2002 *************** *** 4,66 **** SELECT DISTINCT ON (string4) string4, two, ten FROM tmp ORDER BY string4 using <, two using >, ten using <; ! string4 | two | ten ! ---------+-----+----- ! AAAAxx | 1 | 1 ! HHHHxx | 1 | 1 ! OOOOxx | 1 | 1 ! VVVVxx | 1 | 1 ! (4 rows) ! -- this will fail due to conflict of ordering requirements SELECT DISTINCT ON (string4, ten) string4, two, ten FROM tmp ORDER BY string4 using <, two using <, ten using <; ! ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions SELECT DISTINCT ON (string4, ten) string4, ten, two FROM tmp ORDER BY string4 using <, ten using >, two using <; ! string4 | ten | two ! ---------+-----+----- ! AAAAxx | 9 | 1 ! AAAAxx | 8 | 0 ! AAAAxx | 7 | 1 ! AAAAxx | 6 | 0 ! AAAAxx | 5 | 1 ! AAAAxx | 4 | 0 ! AAAAxx | 3 | 1 ! AAAAxx | 2 | 0 ! AAAAxx | 1 | 1 ! AAAAxx | 0 | 0 ! HHHHxx | 9 | 1 ! HHHHxx | 8 | 0 ! HHHHxx | 7 | 1 ! HHHHxx | 6 | 0 ! HHHHxx | 5 | 1 ! HHHHxx | 4 | 0 ! HHHHxx | 3 | 1 ! HHHHxx | 2 | 0 ! HHHHxx | 1 | 1 ! HHHHxx | 0 | 0 ! OOOOxx | 9 | 1 ! OOOOxx | 8 | 0 ! OOOOxx | 7 | 1 ! OOOOxx | 6 | 0 ! OOOOxx | 5 | 1 ! OOOOxx | 4 | 0 ! OOOOxx | 3 | 1 ! OOOOxx | 2 | 0 ! OOOOxx | 1 | 1 ! OOOOxx | 0 | 0 ! VVVVxx | 9 | 1 ! VVVVxx | 8 | 0 ! VVVVxx | 7 | 1 ! VVVVxx | 6 | 0 ! VVVVxx | 5 | 1 ! VVVVxx | 4 | 0 ! VVVVxx | 3 | 1 ! VVVVxx | 2 | 0 ! VVVVxx | 1 | 1 ! VVVVxx | 0 | 0 ! (40 rows) ! --- 4,16 ---- SELECT DISTINCT ON (string4) string4, two, ten FROM tmp ORDER BY string4 using <, two using >, ten using <; ! ERROR: Relation "tmp" does not exist -- this will fail due to conflict of ordering requirements SELECT DISTINCT ON (string4, ten) string4, two, ten FROM tmp ORDER BY string4 using <, two using <, ten using <; ! ERROR: Relation "tmp" does not exist SELECT DISTINCT ON (string4, ten) string4, ten, two FROM tmp ORDER BY string4 using <, ten using >, two using <; ! ERROR: Relation "tmp" does not exist ====================================================================== *** ./expected/aggregates.out Mon Jul 17 11:05:37 2000 --- ./results/aggregates.out Thu Mar 7 10:43:22 2002 *************** *** 2,137 **** -- AGGREGATES -- SELECT avg(four) AS avg_1 FROM onek; ! avg_1 ! -------------- ! 1.5000000000 ! (1 row) ! SELECT avg(a) AS avg_32 FROM aggtest WHERE a < 100; ! avg_32 ! --------------- ! 32.6666666667 ! (1 row) ! -- In 7.1, avg(float4) is computed using float8 arithmetic. -- Round the result to 3 digits to avoid platform-specific results. SELECT avg(b)::numeric(10,3) AS avg_107_943 FROM aggtest; ! avg_107_943 ! ------------- ! 107.943 ! (1 row) ! SELECT avg(gpa) AS avg_3_4 FROM ONLY student; ! avg_3_4 ! --------- ! 3.4 ! (1 row) ! SELECT sum(four) AS sum_1500 FROM onek; ! sum_1500 ! ---------- ! 1500 ! (1 row) ! SELECT sum(a) AS sum_198 FROM aggtest; ! sum_198 ! --------- ! 198 ! (1 row) ! SELECT sum(b) AS avg_431_773 FROM aggtest; ! avg_431_773 ! ------------- ! 431.773 ! (1 row) ! SELECT sum(gpa) AS avg_6_8 FROM ONLY student; ! avg_6_8 ! --------- ! 6.8 ! (1 row) ! SELECT max(four) AS max_3 FROM onek; ! max_3 ! ------- ! 3 ! (1 row) ! SELECT max(a) AS max_100 FROM aggtest; ! max_100 ! --------- ! 100 ! (1 row) ! SELECT max(aggtest.b) AS max_324_78 FROM aggtest; ! max_324_78 ! ------------ ! 324.78 ! (1 row) ! SELECT max(student.gpa) AS max_3_7 FROM student; ! max_3_7 ! --------- ! 3.7 ! (1 row) ! SELECT count(four) AS cnt_1000 FROM onek; ! cnt_1000 ! ---------- ! 1000 ! (1 row) ! SELECT count(DISTINCT four) AS cnt_4 FROM onek; ! cnt_4 ! ------- ! 4 ! (1 row) ! select ten, count(*), sum(four) from onek group by ten; ! ten | count | sum ! -----+-------+----- ! 0 | 100 | 100 ! 1 | 100 | 200 ! 2 | 100 | 100 ! 3 | 100 | 200 ! 4 | 100 | 100 ! 5 | 100 | 200 ! 6 | 100 | 100 ! 7 | 100 | 200 ! 8 | 100 | 100 ! 9 | 100 | 200 ! (10 rows) ! select ten, count(four), sum(DISTINCT four) from onek group by ten; ! ten | count | sum ! -----+-------+----- ! 0 | 100 | 2 ! 1 | 100 | 4 ! 2 | 100 | 2 ! 3 | 100 | 4 ! 4 | 100 | 2 ! 5 | 100 | 4 ! 6 | 100 | 2 ! 7 | 100 | 4 ! 8 | 100 | 2 ! 9 | 100 | 4 ! (10 rows) ! SELECT newavg(four) AS avg_1 FROM onek; ! avg_1 ! -------------- ! 1.5000000000 ! (1 row) ! SELECT newsum(four) AS sum_1500 FROM onek; ! sum_1500 ! ---------- ! 1500 ! (1 row) ! SELECT newcnt(four) AS cnt_1000 FROM onek; ! cnt_1000 ! ---------- ! 1000 ! (1 row) ! --- 2,43 ---- -- AGGREGATES -- SELECT avg(four) AS avg_1 FROM onek; ! ERROR: Relation "onek" does not exist SELECT avg(a) AS avg_32 FROM aggtest WHERE a < 100; ! ERROR: Relation "aggtest" does not exist -- In 7.1, avg(float4) is computed using float8 arithmetic. -- Round the result to 3 digits to avoid platform-specific results. SELECT avg(b)::numeric(10,3) AS avg_107_943 FROM aggtest; ! ERROR: Relation "aggtest" does not exist SELECT avg(gpa) AS avg_3_4 FROM ONLY student; ! ERROR: Relation "student" does not exist SELECT sum(four) AS sum_1500 FROM onek; ! ERROR: Relation "onek" does not exist SELECT sum(a) AS sum_198 FROM aggtest; ! ERROR: Relation "aggtest" does not exist SELECT sum(b) AS avg_431_773 FROM aggtest; ! ERROR: Relation "aggtest" does not exist SELECT sum(gpa) AS avg_6_8 FROM ONLY student; ! ERROR: Relation "student" does not exist SELECT max(four) AS max_3 FROM onek; ! ERROR: Relation "onek" does not exist SELECT max(a) AS max_100 FROM aggtest; ! ERROR: Relation "aggtest" does not exist SELECT max(aggtest.b) AS max_324_78 FROM aggtest; ! ERROR: Relation "aggtest" does not exist SELECT max(student.gpa) AS max_3_7 FROM student; ! ERROR: Relation "student" does not exist SELECT count(four) AS cnt_1000 FROM onek; ! ERROR: Relation "onek" does not exist SELECT count(DISTINCT four) AS cnt_4 FROM onek; ! ERROR: Relation "onek" does not exist select ten, count(*), sum(four) from onek group by ten; ! ERROR: Relation "onek" does not exist select ten, count(four), sum(DISTINCT four) from onek group by ten; ! ERROR: Relation "onek" does not exist SELECT newavg(four) AS avg_1 FROM onek; ! ERROR: Relation "onek" does not exist SELECT newsum(four) AS sum_1500 FROM onek; ! ERROR: Relation "onek" does not exist SELECT newcnt(four) AS cnt_1000 FROM onek; ! ERROR: Relation "onek" does not exist ====================================================================== *** ./expected/transactions.out Sun Jan 9 11:48:39 2000 --- ./results/transactions.out Thu Mar 7 10:43:22 2002 *************** *** 5,28 **** 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; ! a ! ----- ! 777 ! (1 row) ! BEGIN; CREATE TABLE disappear (a int4); DELETE FROM aggtest; -- should be empty SELECT * FROM aggtest; ! a | b ! ---+--- ! (0 rows) ! ABORT; -- should not exist SELECT oid FROM pg_class WHERE relname = 'disappear'; --- 5,24 ---- SELECT * INTO TABLE xacttest FROM aggtest; + ERROR: Relation "aggtest" does not exist INSERT INTO xacttest (a, b) VALUES (777, 777.777); + WARNING: current transaction is aborted, queries ignored until end of transaction block END; -- should retrieve one value-- SELECT a FROM xacttest WHERE a > 100; ! ERROR: Relation "xacttest" does not exist BEGIN; CREATE TABLE disappear (a int4); DELETE FROM aggtest; + ERROR: Relation "aggtest" does not exist -- should be empty SELECT * FROM aggtest; ! WARNING: current transaction is aborted, queries ignored until end of transaction block ABORT; -- should not exist SELECT oid FROM pg_class WHERE relname = 'disappear'; *************** *** 32,42 **** -- should have members again SELECT * FROM aggtest; ! a | b ! -----+--------- ! 56 | 7.8 ! 100 | 99.097 ! 0 | 0.09561 ! 42 | 324.78 ! (4 rows) ! --- 28,31 ---- -- should have members again SELECT * FROM aggtest; ! ERROR: Relation "aggtest" does not exist ====================================================================== *** ./expected/random.out Thu Jan 6 14:40:54 2000 --- ./results/random.out Thu Mar 7 10:43:22 2002 *************** *** 4,14 **** -- -- count the number of tuples originally SELECT count(*) FROM onek; ! count ! ------- ! 1000 ! (1 row) ! -- select roughly 1/10 of the tuples -- Assume that the "onek" table has 1000 tuples -- and try to bracket the correct number so we --- 4,10 ---- -- -- count the number of tuples originally SELECT count(*) FROM onek; ! ERROR: Relation "onek" does not exist -- select roughly 1/10 of the tuples -- Assume that the "onek" table has 1000 tuples -- and try to bracket the correct number so we *************** *** 16,35 **** -- - thomas 1998-08-17 SELECT count(*) AS random INTO RANDOM_TBL FROM onek WHERE oidrand(onek.oid, 10); -- select again, the count should be different INSERT INTO RANDOM_TBL (random) SELECT count(*) FROM onek WHERE oidrand(onek.oid, 10); -- now test the results for randomness in the correct range SELECT random, count(random) FROM RANDOM_TBL GROUP BY random HAVING count(random) > 1; ! random | count ! --------+------- ! (0 rows) ! SELECT random FROM RANDOM_TBL WHERE random NOT BETWEEN 80 AND 120; ! random ! -------- ! (0 rows) ! --- 12,27 ---- -- - thomas 1998-08-17 SELECT count(*) AS random INTO RANDOM_TBL FROM onek WHERE oidrand(onek.oid, 10); + ERROR: Relation "onek" does not exist -- select again, the count should be different INSERT INTO RANDOM_TBL (random) SELECT count(*) FROM onek WHERE oidrand(onek.oid, 10); + ERROR: Relation "random_tbl" does not exist -- now test the results for randomness in the correct range SELECT random, count(random) FROM RANDOM_TBL GROUP BY random HAVING count(random) > 1; ! ERROR: Relation "random_tbl" does not exist SELECT random FROM RANDOM_TBL WHERE random NOT BETWEEN 80 AND 120; ! ERROR: Relation "random_tbl" does not exist ====================================================================== *** ./expected/portals.out Sun Jan 9 11:48:37 2000 --- ./results/portals.out Thu Mar 7 10:43:23 2002 *************** *** 3,678 **** -- 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; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (1 row) ! FETCH 2 in foo2; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! (2 rows) ! FETCH 3 in foo3; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! (3 rows) ! FETCH 4 in foo4; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! (4 rows) ! FETCH 5 in foo5; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! (5 rows) ! FETCH 6 in foo6; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! (6 rows) ! FETCH 7 in foo7; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! (7 rows) ! FETCH 8 in foo8; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! (8 rows) ! FETCH 9 in foo9; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! (9 rows) ! FETCH 10 in foo10; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! (10 rows) ! FETCH 11 in foo11; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! (11 rows) ! FETCH 12 in foo12; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! (12 rows) ! FETCH 13 in foo13; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! (13 rows) ! FETCH 14 in foo14; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! (14 rows) ! FETCH 15 in foo15; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! (15 rows) ! FETCH 16 in foo16; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! (16 rows) ! FETCH 17 in foo17; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! (17 rows) ! FETCH 18 in foo18; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! (18 rows) ! FETCH 19 in foo19; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! (19 rows) ! FETCH 20 in foo20; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! 6969 | 19 | 1 | 1 | 9 | 9 | 69 | 969 | 969 | 1969 | 6969 | 138 | 139 | BIAAAA | TAAAAA | VVVVxx ! (20 rows) ! FETCH 21 in foo21; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! 6969 | 19 | 1 | 1 | 9 | 9 | 69 | 969 | 969 | 1969 | 6969 | 138 | 139 | BIAAAA | TAAAAA | VVVVxx ! 9460 | 20 | 0 | 0 | 0 | 0 | 60 | 460 | 1460 | 4460 | 9460 | 120 | 121 | WZAAAA | UAAAAA | AAAAxx ! (21 rows) ! FETCH 22 in foo22; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! 6969 | 19 | 1 | 1 | 9 | 9 | 69 | 969 | 969 | 1969 | 6969 | 138 | 139 | BIAAAA | TAAAAA | VVVVxx ! 9460 | 20 | 0 | 0 | 0 | 0 | 60 | 460 | 1460 | 4460 | 9460 | 120 | 121 | WZAAAA | UAAAAA | AAAAxx ! 59 | 21 | 1 | 3 | 9 | 19 | 59 | 59 | 59 | 59 | 59 | 118 | 119 | HCAAAA | VAAAAA | HHHHxx ! (22 rows) ! FETCH 23 in foo23; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! 6969 | 19 | 1 | 1 | 9 | 9 | 69 | 969 | 969 | 1969 | 6969 | 138 | 139 | BIAAAA | TAAAAA | VVVVxx ! 9460 | 20 | 0 | 0 | 0 | 0 | 60 | 460 | 1460 | 4460 | 9460 | 120 | 121 | WZAAAA | UAAAAA | AAAAxx ! 59 | 21 | 1 | 3 | 9 | 19 | 59 | 59 | 59 | 59 | 59 | 118 | 119 | HCAAAA | VAAAAA | HHHHxx ! 8020 | 22 | 0 | 0 | 0 | 0 | 20 | 20 | 20 | 3020 | 8020 | 40 | 41 | MWAAAA | WAAAAA | OOOOxx ! (23 rows) ! FETCH backward 1 in foo23; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 59 | 21 | 1 | 3 | 9 | 19 | 59 | 59 | 59 | 59 | 59 | 118 | 119 | HCAAAA | VAAAAA | HHHHxx ! (1 row) ! FETCH backward 2 in foo22; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 9460 | 20 | 0 | 0 | 0 | 0 | 60 | 460 | 1460 | 4460 | 9460 | 120 | 121 | WZAAAA | UAAAAA | AAAAxx ! 6969 | 19 | 1 | 1 | 9 | 9 | 69 | 969 | 969 | 1969 | 6969 | 138 | 139 | BIAAAA | TAAAAA | VVVVxx ! (2 rows) ! FETCH backward 3 in foo21; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 6969 | 19 | 1 | 1 | 9 | 9 | 69 | 969 | 969 | 1969 | 6969 | 138 | 139 | BIAAAA | TAAAAA | VVVVxx ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! (3 rows) ! FETCH backward 4 in foo20; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 6621 | 18 | 1 | 1 | 1 | 1 | 21 | 621 | 621 | 1621 | 6621 | 42 | 43 | RUAAAA | SAAAAA | OOOOxx ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! (4 rows) ! FETCH backward 5 in foo19; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 5785 | 17 | 1 | 1 | 5 | 5 | 85 | 785 | 1785 | 785 | 5785 | 170 | 171 | NOAAAA | RAAAAA | HHHHxx ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! (5 rows) ! FETCH backward 6 in foo18; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 5387 | 16 | 1 | 3 | 7 | 7 | 87 | 387 | 1387 | 387 | 5387 | 174 | 175 | FZAAAA | QAAAAA | AAAAxx ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! (6 rows) ! FETCH backward 7 in foo17; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 5006 | 15 | 0 | 2 | 6 | 6 | 6 | 6 | 1006 | 6 | 5006 | 12 | 13 | OKAAAA | PAAAAA | VVVVxx ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! (7 rows) ! FETCH backward 8 in foo16; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 5471 | 14 | 1 | 3 | 1 | 11 | 71 | 471 | 1471 | 471 | 5471 | 142 | 143 | LCAAAA | OAAAAA | OOOOxx ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! (8 rows) ! FETCH backward 9 in foo15; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 6243 | 13 | 1 | 3 | 3 | 3 | 43 | 243 | 243 | 1243 | 6243 | 86 | 87 | DGAAAA | NAAAAA | HHHHxx ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! (9 rows) ! FETCH backward 10 in foo14; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 5222 | 12 | 0 | 2 | 2 | 2 | 22 | 222 | 1222 | 222 | 5222 | 44 | 45 | WSAAAA | MAAAAA | AAAAxx ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! (10 rows) ! FETCH backward 11 in foo13; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 1504 | 11 | 0 | 0 | 4 | 4 | 4 | 504 | 1504 | 1504 | 1504 | 8 | 9 | WFAAAA | LAAAAA | VVVVxx ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! (11 rows) ! FETCH backward 12 in foo12; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 1314 | 10 | 0 | 2 | 4 | 14 | 14 | 314 | 1314 | 1314 | 1314 | 28 | 29 | OYAAAA | KAAAAA | OOOOxx ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (11 rows) ! FETCH backward 13 in foo11; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 3043 | 9 | 1 | 3 | 3 | 3 | 43 | 43 | 1043 | 3043 | 3043 | 86 | 87 | BNAAAA | JAAAAA | HHHHxx ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (10 rows) ! FETCH backward 14 in foo10; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 4321 | 8 | 1 | 1 | 1 | 1 | 21 | 321 | 321 | 4321 | 4321 | 42 | 43 | FKAAAA | IAAAAA | AAAAxx ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (9 rows) ! FETCH backward 15 in foo9; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 6701 | 7 | 1 | 1 | 1 | 1 | 1 | 701 | 701 | 1701 | 6701 | 2 | 3 | TXAAAA | HAAAAA | VVVVxx ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (8 rows) ! FETCH backward 16 in foo8; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 5057 | 6 | 1 | 1 | 7 | 17 | 57 | 57 | 1057 | 57 | 5057 | 114 | 115 | NMAAAA | GAAAAA | OOOOxx ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (7 rows) ! FETCH backward 17 in foo7; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8009 | 5 | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 3009 | 8009 | 18 | 19 | BWAAAA | FAAAAA | HHHHxx ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (6 rows) ! FETCH backward 18 in foo6; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 7164 | 4 | 0 | 0 | 4 | 4 | 64 | 164 | 1164 | 2164 | 7164 | 128 | 129 | OPAAAA | EAAAAA | AAAAxx ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (5 rows) ! FETCH backward 19 in foo5; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (4 rows) ! FETCH backward 20 in foo4; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (3 rows) ! FETCH backward 21 in foo3; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (2 rows) ! FETCH backward 22 in foo2; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx ! (1 row) ! FETCH backward 23 in foo1; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! (0 rows) ! 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; --- 3,167 ---- -- BEGIN; DECLARE foo1 CURSOR FOR SELECT * FROM tenk1; + ERROR: Relation "tenk1" does not exist DECLARE foo2 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo3 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo4 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo5 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo6 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo7 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo8 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo9 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo10 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo11 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo12 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo13 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo14 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo15 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo16 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo17 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo18 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo19 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo20 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo21 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo22 CURSOR FOR SELECT * FROM tenk2; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo23 CURSOR FOR SELECT * FROM tenk1; + WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 1 in foo1; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 2 in foo2; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 3 in foo3; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 4 in foo4; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 5 in foo5; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 6 in foo6; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 7 in foo7; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 8 in foo8; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 9 in foo9; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 10 in foo10; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 11 in foo11; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 12 in foo12; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 13 in foo13; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 14 in foo14; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 15 in foo15; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 16 in foo16; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 17 in foo17; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 18 in foo18; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 19 in foo19; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 20 in foo20; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 21 in foo21; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 22 in foo22; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH 23 in foo23; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 1 in foo23; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 2 in foo22; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 3 in foo21; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 4 in foo20; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 5 in foo19; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 6 in foo18; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 7 in foo17; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 8 in foo16; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 9 in foo15; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 10 in foo14; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 11 in foo13; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 12 in foo12; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 13 in foo11; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 14 in foo10; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 15 in foo9; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 16 in foo8; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 17 in foo7; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 18 in foo6; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 19 in foo5; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 20 in foo4; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 21 in foo3; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 22 in foo2; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH backward 23 in foo1; ! WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo1; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo2; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo3; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo4; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo5; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo6; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo7; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo8; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo9; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo10; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo11; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo12; + WARNING: current transaction is aborted, queries ignored until end of transaction block end; ====================================================================== *** ./expected/btree_index.out Sun Jan 9 11:48:37 2000 --- ./results/btree_index.out Thu Mar 7 10:43:22 2002 *************** *** 5,100 **** SELECT b.* FROM bt_i4_heap b WHERE b.seqno < 1; ! seqno | random ! -------+------------ ! 0 | 1935401906 ! (1 row) ! SELECT b.* FROM bt_i4_heap b WHERE b.seqno >= 9999; ! seqno | random ! -------+------------ ! 9999 | 1227676208 ! (1 row) ! SELECT b.* FROM bt_i4_heap b WHERE b.seqno = 4500; ! seqno | random ! -------+------------ ! 4500 | 2080851358 ! (1 row) ! SELECT b.* FROM bt_name_heap b WHERE b.seqno < '1'::name; ! seqno | random ! -------+------------ ! 0 | 1935401906 ! (1 row) ! SELECT b.* FROM bt_name_heap b WHERE b.seqno >= '9999'::name; ! seqno | random ! -------+------------ ! 9999 | 1227676208 ! (1 row) ! SELECT b.* FROM bt_name_heap b WHERE b.seqno = '4500'::name; ! seqno | random ! -------+------------ ! 4500 | 2080851358 ! (1 row) ! SELECT b.* FROM bt_txt_heap b WHERE b.seqno < '1'::text; ! seqno | random ! -------+------------ ! 0 | 1935401906 ! (1 row) ! SELECT b.* FROM bt_txt_heap b WHERE b.seqno >= '9999'::text; ! seqno | random ! -------+------------ ! 9999 | 1227676208 ! (1 row) ! SELECT b.* FROM bt_txt_heap b WHERE b.seqno = '4500'::text; ! seqno | random ! -------+------------ ! 4500 | 2080851358 ! (1 row) ! SELECT b.* FROM bt_f8_heap b WHERE b.seqno < '1'::float8; ! seqno | random ! -------+------------ ! 0 | 1935401906 ! (1 row) ! SELECT b.* FROM bt_f8_heap b WHERE b.seqno >= '9999'::float8; ! seqno | random ! -------+------------ ! 9999 | 1227676208 ! (1 row) ! SELECT b.* FROM bt_f8_heap b WHERE b.seqno = '4500'::float8; ! seqno | random ! -------+------------ ! 4500 | 2080851358 ! (1 row) ! --- 5,52 ---- SELECT b.* FROM bt_i4_heap b WHERE b.seqno < 1; ! ERROR: Relation "bt_i4_heap" does not exist SELECT b.* FROM bt_i4_heap b WHERE b.seqno >= 9999; ! ERROR: Relation "bt_i4_heap" does not exist SELECT b.* FROM bt_i4_heap b WHERE b.seqno = 4500; ! ERROR: Relation "bt_i4_heap" does not exist SELECT b.* FROM bt_name_heap b WHERE b.seqno < '1'::name; ! ERROR: Relation "bt_name_heap" does not exist SELECT b.* FROM bt_name_heap b WHERE b.seqno >= '9999'::name; ! ERROR: Relation "bt_name_heap" does not exist SELECT b.* FROM bt_name_heap b WHERE b.seqno = '4500'::name; ! ERROR: Relation "bt_name_heap" does not exist SELECT b.* FROM bt_txt_heap b WHERE b.seqno < '1'::text; ! ERROR: Relation "bt_txt_heap" does not exist SELECT b.* FROM bt_txt_heap b WHERE b.seqno >= '9999'::text; ! ERROR: Relation "bt_txt_heap" does not exist SELECT b.* FROM bt_txt_heap b WHERE b.seqno = '4500'::text; ! ERROR: Relation "bt_txt_heap" does not exist SELECT b.* FROM bt_f8_heap b WHERE b.seqno < '1'::float8; ! ERROR: Relation "bt_f8_heap" does not exist SELECT b.* FROM bt_f8_heap b WHERE b.seqno >= '9999'::float8; ! ERROR: Relation "bt_f8_heap" does not exist SELECT b.* FROM bt_f8_heap b WHERE b.seqno = '4500'::float8; ! ERROR: Relation "bt_f8_heap" does not exist ====================================================================== *** ./expected/hash_index.out Sun Jan 9 11:48:37 2000 --- ./results/hash_index.out Thu Mar 7 10:43:23 2002 *************** *** 4,87 **** -- SELECT hash_i4_heap.* WHERE hash_i4_heap.random = 843938989; ! seqno | random ! -------+----------- ! 15 | 843938989 ! (1 row) ! -- -- hash index -- grep 66766766 hash.data -- SELECT hash_i4_heap.* WHERE hash_i4_heap.random = 66766766; ! seqno | random ! -------+-------- ! (0 rows) ! -- -- hash index -- grep 1505703298 hash.data -- SELECT hash_name_heap.* WHERE hash_name_heap.random = '1505703298'::name; ! seqno | random ! -------+------------ ! 9838 | 1505703298 ! (1 row) ! -- -- hash index -- grep 7777777 hash.data -- SELECT hash_name_heap.* WHERE hash_name_heap.random = '7777777'::name; ! seqno | random ! -------+-------- ! (0 rows) ! -- -- hash index -- grep 1351610853 hash.data -- SELECT hash_txt_heap.* WHERE hash_txt_heap.random = '1351610853'::text; ! seqno | random ! -------+------------ ! 5677 | 1351610853 ! (1 row) ! -- -- hash index -- grep 111111112222222233333333 hash.data -- SELECT hash_txt_heap.* WHERE hash_txt_heap.random = '111111112222222233333333'::text; ! seqno | random ! -------+-------- ! (0 rows) ! -- -- hash index -- grep 444705537 hash.data -- SELECT hash_f8_heap.* WHERE hash_f8_heap.random = '444705537'::float8; ! seqno | random ! -------+----------- ! 7853 | 444705537 ! (1 row) ! -- -- hash index -- grep 88888888 hash.data -- SELECT hash_f8_heap.* WHERE hash_f8_heap.random = '88888888'::float8; ! seqno | random ! -------+-------- ! (0 rows) ! -- -- hash index -- grep '^90[^0-9]' hashovfl.data --- 4,59 ---- -- SELECT hash_i4_heap.* WHERE hash_i4_heap.random = 843938989; ! ERROR: Relation "hash_i4_heap" does not exist -- -- hash index -- grep 66766766 hash.data -- SELECT hash_i4_heap.* WHERE hash_i4_heap.random = 66766766; ! ERROR: Relation "hash_i4_heap" does not exist -- -- hash index -- grep 1505703298 hash.data -- SELECT hash_name_heap.* WHERE hash_name_heap.random = '1505703298'::name; ! ERROR: Relation "hash_name_heap" does not exist -- -- hash index -- grep 7777777 hash.data -- SELECT hash_name_heap.* WHERE hash_name_heap.random = '7777777'::name; ! ERROR: Relation "hash_name_heap" does not exist -- -- hash index -- grep 1351610853 hash.data -- SELECT hash_txt_heap.* WHERE hash_txt_heap.random = '1351610853'::text; ! ERROR: Relation "hash_txt_heap" does not exist -- -- hash index -- grep 111111112222222233333333 hash.data -- SELECT hash_txt_heap.* WHERE hash_txt_heap.random = '111111112222222233333333'::text; ! ERROR: Relation "hash_txt_heap" does not exist -- -- hash index -- grep 444705537 hash.data -- SELECT hash_f8_heap.* WHERE hash_f8_heap.random = '444705537'::float8; ! ERROR: Relation "hash_f8_heap" does not exist -- -- hash index -- grep 88888888 hash.data -- SELECT hash_f8_heap.* WHERE hash_f8_heap.random = '88888888'::float8; ! ERROR: Relation "hash_f8_heap" does not exist -- -- hash index -- grep '^90[^0-9]' hashovfl.data *************** *** 100,192 **** 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; ! i1492 | i1 ! -------+---- ! 1492 | 1 ! (1 row) ! 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; ! i20000 ! -------- ! 20000 ! (1 row) ! UPDATE hash_name_heap SET random = '0123456789abcdef'::name WHERE hash_name_heap.seqno = 6543; SELECT h.seqno AS i6543, h.random AS c0_to_f FROM hash_name_heap h WHERE h.random = '0123456789abcdef'::name; ! i6543 | c0_to_f ! -------+------------------ ! 6543 | 0123456789abcdef ! (1 row) ! UPDATE hash_name_heap SET seqno = 20000 WHERE hash_name_heap.random = '76652222'::name; -- -- this is the row we just replaced; index scan should return zero rows -- SELECT h.seqno AS emptyset FROM hash_name_heap h WHERE h.random = '76652222'::name; ! emptyset ! ---------- ! (0 rows) ! 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; ! i4002 | c0_to_p ! -------+---------------------------- ! 4002 | 0123456789abcdefghijklmnop ! (1 row) ! 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; ! t20000 ! -------- ! 20000 ! (1 row) ! 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; ! i8096 | f1234_1234 ! -------+------------ ! 8906 | -1234.1234 ! (1 row) ! 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; ! f20000 ! -------- ! 20000 ! (1 row) ! -- UPDATE hash_ovfl_heap -- SET x = 1000 -- WHERE x = 90; --- 72,141 ---- UPDATE hash_i4_heap SET random = 1 WHERE hash_i4_heap.seqno = 1492; + ERROR: Relation "hash_i4_heap" does not exist SELECT h.seqno AS i1492, h.random AS i1 FROM hash_i4_heap h WHERE h.random = 1; ! ERROR: Relation "hash_i4_heap" does not exist UPDATE hash_i4_heap SET seqno = 20000 WHERE hash_i4_heap.random = 1492795354; + ERROR: Relation "hash_i4_heap" does not exist SELECT h.seqno AS i20000 FROM hash_i4_heap h WHERE h.random = 1492795354; ! ERROR: Relation "hash_i4_heap" does not exist UPDATE hash_name_heap SET random = '0123456789abcdef'::name WHERE hash_name_heap.seqno = 6543; + ERROR: Relation "hash_name_heap" does not exist SELECT h.seqno AS i6543, h.random AS c0_to_f FROM hash_name_heap h WHERE h.random = '0123456789abcdef'::name; ! ERROR: Relation "hash_name_heap" does not exist UPDATE hash_name_heap SET seqno = 20000 WHERE hash_name_heap.random = '76652222'::name; + ERROR: Relation "hash_name_heap" does not exist -- -- this is the row we just replaced; index scan should return zero rows -- SELECT h.seqno AS emptyset FROM hash_name_heap h WHERE h.random = '76652222'::name; ! ERROR: Relation "hash_name_heap" does not exist UPDATE hash_txt_heap SET random = '0123456789abcdefghijklmnop'::text WHERE hash_txt_heap.seqno = 4002; + ERROR: Relation "hash_txt_heap" does not exist SELECT h.seqno AS i4002, h.random AS c0_to_p FROM hash_txt_heap h WHERE h.random = '0123456789abcdefghijklmnop'::text; ! ERROR: Relation "hash_txt_heap" does not exist UPDATE hash_txt_heap SET seqno = 20000 WHERE hash_txt_heap.random = '959363399'::text; + ERROR: Relation "hash_txt_heap" does not exist SELECT h.seqno AS t20000 FROM hash_txt_heap h WHERE h.random = '959363399'::text; ! ERROR: Relation "hash_txt_heap" does not exist UPDATE hash_f8_heap SET random = '-1234.1234'::float8 WHERE hash_f8_heap.seqno = 8906; + ERROR: Relation "hash_f8_heap" does not exist SELECT h.seqno AS i8096, h.random AS f1234_1234 FROM hash_f8_heap h WHERE h.random = '-1234.1234'::float8; ! ERROR: Relation "hash_f8_heap" does not exist UPDATE hash_f8_heap SET seqno = 20000 WHERE hash_f8_heap.random = '488912369'::float8; + ERROR: Relation "hash_f8_heap" does not exist SELECT h.seqno AS f20000 FROM hash_f8_heap h WHERE h.random = '488912369'::float8; ! ERROR: Relation "hash_f8_heap" does not exist -- UPDATE hash_ovfl_heap -- SET x = 1000 -- WHERE x = 90; ====================================================================== *** ./expected/misc.out Thu Mar 7 10:40:02 2002 --- ./results/misc.out Thu Mar 7 10:43:29 2002 *************** *** 6,13 **** --- 6,15 ---- -- UPDATE onek SET unique1 = onek.unique1 + 1; + ERROR: Relation "onek" does not exist UPDATE onek SET unique1 = onek.unique1 - 1; + ERROR: Relation "onek" does not exist -- -- BTREE partial -- *************** *** 26,36 **** --- 28,41 ---- SET stringu1 = reverse_name(onek.stringu1) WHERE onek.stringu1 = 'JBAAAA' and onek.stringu1 = tmp.stringu1; + ERROR: Relation "tmp" does not exist UPDATE tmp SET stringu1 = reverse_name(onek2.stringu1) WHERE onek2.stringu1 = 'JCAAAA' and onek2.stringu1 = tmp.stringu1; + ERROR: Relation "tmp" does not exist DROP TABLE tmp; + ERROR: table "tmp" does not exist --UPDATE person* -- SET age = age + 1; --UPDATE person* *************** *** 40,74 **** -- copy -- COPY onek TO '/home/chriskl/pgsql/src/test/regress/results/onek.data'; DELETE FROM onek; COPY onek FROM '/home/chriskl/pgsql/src/test/regress/results/onek.data'; SELECT unique1 FROM onek WHERE unique1 < 2 ORDER BY unique1; ! unique1 ! --------- ! 0 ! 1 ! (2 rows) ! DELETE FROM onek2; COPY onek2 FROM '/home/chriskl/pgsql/src/test/regress/results/onek.data'; SELECT unique1 FROM onek2 WHERE unique1 < 2 ORDER BY unique1; ! unique1 ! --------- ! 0 ! 1 ! (2 rows) ! COPY BINARY stud_emp TO '/home/chriskl/pgsql/src/test/regress/results/stud_emp.data'; DELETE FROM stud_emp; COPY BINARY stud_emp FROM '/home/chriskl/pgsql/src/test/regress/results/stud_emp.data'; SELECT * FROM stud_emp; ! name | age | location | salary | manager | gpa | percent ! -------+-----+------------+--------+---------+-----+--------- ! jeff | 23 | (8,7.7) | 600 | sharon | 3.5 | ! cim | 30 | (10.5,4.7) | 400 | | 3.4 | ! linda | 19 | (0.9,6.1) | 100 | | 2.9 | ! (3 rows) ! -- COPY aggtest FROM stdin; -- 56 7.8 -- 100 99.097 --- 45,71 ---- -- copy -- COPY onek TO '/home/chriskl/pgsql/src/test/regress/results/onek.data'; + ERROR: Relation "onek" does not exist DELETE FROM onek; + ERROR: Relation "onek" does not exist COPY onek FROM '/home/chriskl/pgsql/src/test/regress/results/onek.data'; + ERROR: Relation "onek" does not exist SELECT unique1 FROM onek WHERE unique1 < 2 ORDER BY unique1; ! ERROR: Relation "onek" does not exist DELETE FROM onek2; + ERROR: Relation "onek2" does not exist COPY onek2 FROM '/home/chriskl/pgsql/src/test/regress/results/onek.data'; + ERROR: Relation "onek2" does not exist SELECT unique1 FROM onek2 WHERE unique1 < 2 ORDER BY unique1; ! ERROR: Relation "onek2" does not exist COPY BINARY stud_emp TO '/home/chriskl/pgsql/src/test/regress/results/stud_emp.data'; + ERROR: Relation "stud_emp" does not exist DELETE FROM stud_emp; + ERROR: Relation "stud_emp" does not exist COPY BINARY stud_emp FROM '/home/chriskl/pgsql/src/test/regress/results/stud_emp.data'; + ERROR: Relation "stud_emp" does not exist SELECT * FROM stud_emp; ! ERROR: Relation "stud_emp" does not exist -- COPY aggtest FROM stdin; -- 56 7.8 -- 100 99.097 *************** *** 80,436 **** -- inheritance stress test -- SELECT * FROM a_star*; ! class | a ! -------+---- ! a | 1 ! a | 2 ! a | ! b | 3 ! b | 4 ! b | ! b | ! c | 5 ! c | 6 ! c | ! c | ! d | 7 ! d | 8 ! d | 9 ! d | 10 ! d | ! d | 11 ! d | 12 ! d | 13 ! d | ! d | ! d | ! d | 14 ! d | ! d | ! d | ! d | ! e | 15 ! e | 16 ! e | 17 ! e | ! e | 18 ! e | ! e | ! f | 19 ! f | 20 ! f | 21 ! f | 22 ! f | ! f | 24 ! f | 25 ! f | 26 ! f | ! f | ! f | ! f | 27 ! f | ! f | ! f | ! f | ! (50 rows) ! SELECT * FROM b_star* x WHERE x.b = text 'bumble' or x.a < 3; ! class | a | b ! -------+---+-------- ! b | | bumble ! (1 row) ! SELECT class, a FROM c_star* x WHERE x.c ~ text 'hi'; ! class | a ! -------+---- ! c | 5 ! c | ! d | 7 ! d | 8 ! d | 10 ! d | ! d | 12 ! d | ! d | ! d | ! e | 15 ! e | 16 ! e | ! e | ! f | 19 ! f | 20 ! f | 21 ! f | ! f | 24 ! f | ! f | ! f | ! (22 rows) ! SELECT class, b, c FROM d_star* x WHERE x.a < 100; ! class | b | c ! -------+---------+------------ ! d | grumble | hi sunita ! d | stumble | hi koko ! d | rumble | ! d | | hi kristin ! d | fumble | ! d | | hi avi ! d | | ! d | | ! (8 rows) ! SELECT class, c FROM e_star* x WHERE x.c NOTNULL; ! class | c ! -------+------------- ! e | hi carol ! e | hi bob ! e | hi michelle ! e | hi elisa ! f | hi claire ! f | hi mike ! f | hi marcel ! f | hi keith ! f | hi marc ! f | hi allison ! f | hi jeff ! f | hi carl ! (12 rows) ! SELECT * FROM f_star* x WHERE x.c ISNULL; ! class | a | c | e | f ! -------+----+---+-----+------------------------------------------- ! f | 22 | | -7 | ((111,555),(222,666),(333,777),(444,888)) ! f | 25 | | -9 | ! f | 26 | | | ((11111,33333),(22222,44444)) ! f | | | -11 | ((1111111,3333333),(2222222,4444444)) ! f | 27 | | | ! f | | | -12 | ! f | | | | ((11111111,33333333),(22222222,44444444)) ! f | | | | ! (8 rows) ! -- grouping and aggregation on inherited sets have been busted in the past... SELECT sum(a) FROM a_star*; ! sum ! ----- ! 355 ! (1 row) ! SELECT class, sum(a) FROM a_star* GROUP BY class; ! class | sum ! -------+----- ! a | 3 ! b | 7 ! c | 11 ! d | 84 ! e | 66 ! f | 184 ! (6 rows) ! 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; ! class | aa ! -------+---- ! a | ! b | ! b | ! c | ! c | ! d | ! d | ! d | ! d | ! d | ! d | ! d | ! d | ! e | ! e | ! e | ! f | ! f | ! f | ! f | ! f | ! f | ! f | ! f | ! (24 rows) ! -- As of Postgres 7.1, ALTER implicitly recurses, -- so this should be same as ALTER a_star* ALTER TABLE a_star RENAME COLUMN aa TO foo; SELECT class, foo FROM a_star* x WHERE x.foo >= 2; ! class | foo ! -------+----- ! a | 2 ! b | 3 ! b | 4 ! c | 5 ! c | 6 ! d | 7 ! d | 8 ! d | 9 ! d | 10 ! d | 11 ! d | 12 ! d | 13 ! d | 14 ! e | 15 ! e | 16 ! e | 17 ! e | 18 ! f | 19 ! f | 20 ! f | 21 ! f | 22 ! f | 24 ! f | 25 ! f | 26 ! f | 27 ! (25 rows) ! ALTER TABLE a_star RENAME COLUMN foo TO aa; SELECT * from a_star* WHERE aa < 1000; ! class | aa ! -------+---- ! a | 1 ! a | 2 ! b | 3 ! b | 4 ! c | 5 ! c | 6 ! d | 7 ! d | 8 ! d | 9 ! d | 10 ! d | 11 ! d | 12 ! d | 13 ! d | 14 ! e | 15 ! e | 16 ! e | 17 ! e | 18 ! f | 19 ! f | 20 ! f | 21 ! f | 22 ! f | 24 ! f | 25 ! f | 26 ! f | 27 ! (26 rows) ! 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*; ! class | aa | cc | ee | e ! -------+----+-------------+-----+--- ! e | 15 | hi carol | -1 | ! e | 16 | hi bob | | ! e | 17 | | -2 | ! e | | hi michelle | -3 | ! e | 18 | | | ! e | | hi elisa | | ! e | | | -4 | ! f | 19 | hi claire | -5 | ! f | 20 | hi mike | -6 | ! f | 21 | hi marcel | | ! f | 22 | | -7 | ! f | | hi keith | -8 | ! f | 24 | hi marc | | ! f | 25 | | -9 | ! f | 26 | | | ! f | | hi allison | -10 | ! f | | hi jeff | | ! f | | | -11 | ! f | 27 | | | ! f | | hi carl | | ! f | | | -12 | ! f | | | | ! f | | | | ! (23 rows) ! ALTER TABLE a_star* ADD COLUMN a text; --UPDATE b_star* -- SET a = text 'gazpacho' -- WHERE aa > 4; SELECT class, aa, a FROM a_star*; ! class | aa | a ! -------+----+--- ! a | 1 | ! a | 2 | ! a | | ! b | 3 | ! b | 4 | ! b | | ! b | | ! c | 5 | ! c | 6 | ! c | | ! c | | ! d | 7 | ! d | 8 | ! d | 9 | ! d | 10 | ! d | | ! d | 11 | ! d | 12 | ! d | 13 | ! d | | ! d | | ! d | | ! d | 14 | ! d | | ! d | | ! d | | ! d | | ! e | 15 | ! e | 16 | ! e | 17 | ! e | | ! e | 18 | ! e | | ! e | | ! f | 19 | ! f | 20 | ! f | 21 | ! f | 22 | ! f | | ! f | 24 | ! f | 25 | ! f | 26 | ! f | | ! f | | ! f | | ! f | 27 | ! f | | ! f | | ! f | | ! f | | ! (50 rows) ! -- -- versions -- --- 77,150 ---- -- inheritance stress test -- SELECT * FROM a_star*; ! ERROR: Relation "a_star" does not exist SELECT * FROM b_star* x WHERE x.b = text 'bumble' or x.a < 3; ! ERROR: Relation "b_star" does not exist SELECT class, a FROM c_star* x WHERE x.c ~ text 'hi'; ! ERROR: Relation "c_star" does not exist SELECT class, b, c FROM d_star* x WHERE x.a < 100; ! ERROR: Relation "d_star" does not exist SELECT class, c FROM e_star* x WHERE x.c NOTNULL; ! ERROR: Relation "e_star" does not exist SELECT * FROM f_star* x WHERE x.c ISNULL; ! ERROR: Relation "f_star" does not exist -- grouping and aggregation on inherited sets have been busted in the past... SELECT sum(a) FROM a_star*; ! ERROR: Relation "a_star" does not exist SELECT class, sum(a) FROM a_star* GROUP BY class; ! ERROR: Relation "a_star" does not exist ALTER TABLE f_star RENAME COLUMN f TO ff; + ERROR: Relation "f_star" does not exist ALTER TABLE e_star* RENAME COLUMN e TO ee; + ERROR: Relation "e_star" does not exist ALTER TABLE d_star* RENAME COLUMN d TO dd; + ERROR: Relation "d_star" does not exist ALTER TABLE c_star* RENAME COLUMN c TO cc; + ERROR: Relation "c_star" does not exist ALTER TABLE b_star* RENAME COLUMN b TO bb; + ERROR: Relation "b_star" does not exist ALTER TABLE a_star* RENAME COLUMN a TO aa; + ERROR: Relation "a_star" does not exist SELECT class, aa FROM a_star* x WHERE aa ISNULL; ! ERROR: Relation "a_star" does not exist -- As of Postgres 7.1, ALTER implicitly recurses, -- so this should be same as ALTER a_star* ALTER TABLE a_star RENAME COLUMN aa TO foo; + ERROR: Relation "a_star" does not exist SELECT class, foo FROM a_star* x WHERE x.foo >= 2; ! ERROR: Relation "a_star" does not exist ALTER TABLE a_star RENAME COLUMN foo TO aa; + ERROR: Relation "a_star" does not exist SELECT * from a_star* WHERE aa < 1000; ! ERROR: Relation "a_star" does not exist ALTER TABLE f_star ADD COLUMN f int4; + ERROR: Relation "f_star" does not exist UPDATE f_star SET f = 10; + ERROR: Relation "f_star" does not exist ALTER TABLE e_star* ADD COLUMN e int4; + ERROR: Relation "e_star" does not exist --UPDATE e_star* SET e = 42; SELECT * FROM e_star*; ! ERROR: Relation "e_star" does not exist ALTER TABLE a_star* ADD COLUMN a text; + ERROR: Relation "a_star" does not exist --UPDATE b_star* -- SET a = text 'gazpacho' -- WHERE aa > 4; SELECT class, aa, a FROM a_star*; ! ERROR: Relation "a_star" does not exist -- -- versions -- *************** *** 443,670 **** -- everyone else does nothing. -- SELECT p.name, p.hobbies.name FROM ONLY person p; ! name | name ! -------+------------- ! mike | posthacking ! joe | basketball ! sally | basketball ! (3 rows) ! -- -- as above, but jeff also does post_hacking. -- SELECT p.name, p.hobbies.name FROM person* p; ! name | name ! -------+------------- ! mike | posthacking ! joe | basketball ! sally | basketball ! jeff | posthacking ! (4 rows) ! -- -- 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; ! name | name ! -------------+--------------- ! basketball | hightops ! posthacking | advil ! posthacking | peet's coffee ! skywalking | guts ! (4 rows) ! SELECT hobbies_r.name, hobbies_r.equipment.name FROM hobbies_r; ! name | name ! -------------+--------------- ! posthacking | advil ! posthacking | peet's coffee ! posthacking | advil ! posthacking | peet's coffee ! basketball | hightops ! basketball | hightops ! skywalking | guts ! (7 rows) ! -- -- 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 ONLY person p; ! name | name | name ! -------+-------------+--------------- ! mike | posthacking | advil ! mike | posthacking | peet's coffee ! joe | basketball | hightops ! sally | basketball | hightops ! (4 rows) ! -- -- 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; ! name | name | name ! -------+-------------+--------------- ! mike | posthacking | advil ! mike | posthacking | peet's coffee ! joe | basketball | hightops ! sally | basketball | hightops ! jeff | posthacking | advil ! jeff | posthacking | peet's coffee ! (6 rows) ! -- -- 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 ONLY person p; ! name | name | name ! ---------------+-------+------------- ! advil | mike | posthacking ! peet's coffee | mike | posthacking ! hightops | joe | basketball ! hightops | sally | basketball ! (4 rows) ! SELECT p.hobbies.equipment.name, p.name, p.hobbies.name FROM person* p; ! name | name | name ! ---------------+-------+------------- ! advil | mike | posthacking ! peet's coffee | mike | posthacking ! hightops | joe | basketball ! hightops | sally | basketball ! advil | jeff | posthacking ! peet's coffee | jeff | posthacking ! (6 rows) ! SELECT p.hobbies.equipment.name, p.hobbies.name, p.name FROM ONLY person p; ! name | name | name ! ---------------+-------------+------- ! advil | posthacking | mike ! peet's coffee | posthacking | mike ! hightops | basketball | joe ! hightops | basketball | sally ! (4 rows) ! SELECT p.hobbies.equipment.name, p.hobbies.name, p.name FROM person* p; ! name | name | name ! ---------------+-------------+------- ! advil | posthacking | mike ! peet's coffee | posthacking | mike ! hightops | basketball | joe ! hightops | basketball | sally ! advil | posthacking | jeff ! peet's coffee | posthacking | jeff ! (6 rows) ! SELECT user_relns() AS user_relns ORDER BY user_relns; ! user_relns ! --------------------- ! a ! a_star ! abstime_tbl ! aggtest ! arrtest ! b ! b_star ! box_tbl ! bprime ! bt_f8_heap ! bt_i4_heap ! bt_name_heap ! bt_txt_heap ! c ! c_star ! char_tbl ! check2_tbl ! check_seq ! check_tbl ! circle_tbl ! city ! copy_tbl ! d ! d_star ! date_tbl ! default_seq ! default_tbl ! defaultexpr_tbl ! dept ! e_star ! emp ! equipment_r ! f_star ! fast_emp4000 ! float4_tbl ! float8_tbl ! func_index_heap ! hash_f8_heap ! hash_i4_heap ! hash_name_heap ! hash_txt_heap ! hobbies_r ! iexit ! ihighway ! inet_tbl ! insert_seq ! insert_tbl ! int2_tbl ! int4_tbl ! int8_tbl ! interval_tbl ! iportaltest ! lseg_tbl ! num_data ! num_exp_add ! num_exp_div ! num_exp_ln ! num_exp_log10 ! num_exp_mul ! num_exp_power_10_ln ! num_exp_sqrt ! num_exp_sub ! num_result ! onek ! onek2 ! path_tbl ! person ! point_tbl ! polygon_tbl ! ramp ! random_tbl ! real_city ! reltime_tbl ! road ! serialtest ! serialtest_f2_seq ! shighway ! slow_emp4000 ! street ! stud_emp ! student ! subselect_tbl ! tenk1 ! tenk2 ! text_tbl ! time_tbl ! timestamp_tbl ! timestamptz_tbl ! timetz_tbl ! tinterval_tbl ! toyemp ! varchar_tbl ! xacttest ! (93 rows) ! --SELECT name(equipment(hobby_construct(text 'skywalking', text 'mer'))) AS equip_name; SELECT hobbies_by_name('basketball'); ! hobbies_by_name ! ----------------- ! joe ! (1 row) ! -- -- check that old-style C functions work properly with TOASTed values -- --- 157,210 ---- -- everyone else does nothing. -- SELECT p.name, p.hobbies.name FROM ONLY person p; ! ERROR: Relation "person" does not exist -- -- as above, but jeff also does post_hacking. -- SELECT p.name, p.hobbies.name FROM person* p; ! ERROR: Relation "person" does not exist -- -- 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; ! ERROR: Relation "hobbies_r" does not exist SELECT hobbies_r.name, hobbies_r.equipment.name FROM hobbies_r; ! ERROR: Relation "hobbies_r" does not exist -- -- 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 ONLY person p; ! ERROR: Relation "person" does not exist -- -- 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; ! ERROR: Relation "person" does not exist -- -- 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 ONLY person p; ! ERROR: Relation "person" does not exist SELECT p.hobbies.equipment.name, p.name, p.hobbies.name FROM person* p; ! ERROR: Relation "person" does not exist SELECT p.hobbies.equipment.name, p.hobbies.name, p.name FROM ONLY person p; ! ERROR: Relation "person" does not exist SELECT p.hobbies.equipment.name, p.hobbies.name, p.name FROM person* p; ! ERROR: Relation "person" does not exist SELECT user_relns() AS user_relns ORDER BY user_relns; ! ERROR: Function 'user_relns()' does not exist ! Unable to identify a function that satisfies the given argument types ! You may need to add explicit typecasts --SELECT name(equipment(hobby_construct(text 'skywalking', text 'mer'))) AS equip_name; SELECT hobbies_by_name('basketball'); ! ERROR: Function 'hobbies_by_name(unknown)' does not exist ! Unable to identify a function that satisfies the given argument types ! You may need to add explicit typecasts -- -- check that old-style C functions work properly with TOASTed values -- *************** *** 674,687 **** insert into oldstyle_test values(1000,'12'); insert into oldstyle_test values(0, repeat('x', 50000)); select i, length(t), octet_length(t), oldstyle_length(i,t) from oldstyle_test; ! i | length | octet_length | oldstyle_length ! ------+--------+--------------+----------------- ! | | | ! 0 | 2 | 2 | 2 ! 1000 | 2 | 2 | 1002 ! 0 | 50000 | 50000 | 50000 ! (4 rows) ! drop table oldstyle_test; -- -- functional joins --- 214,222 ---- insert into oldstyle_test values(1000,'12'); insert into oldstyle_test values(0, repeat('x', 50000)); select i, length(t), octet_length(t), oldstyle_length(i,t) from oldstyle_test; ! ERROR: Function 'oldstyle_length(int4, text)' does not exist ! Unable to identify a function that satisfies the given argument types ! You may need to add explicit typecasts drop table oldstyle_test; -- -- functional joins ====================================================================== *** ./expected/select_views.out Wed Oct 17 15:16:43 2001 --- ./results/select_views.out Thu Mar 7 10:43:30 2002 *************** *** 3,1249 **** -- test the views defined in CREATE_VIEWS -- SELECT * FROM street; ! name | thepath | cname ! ------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------- ! Access Rd 25 | [(-121.9283,37.894),(-121.9283,37.9)] | Oakland ! Agua Fria Creek | [(-121.9254,37.922),(-121.9281,37.889)] | Oakland ! Andrea Cir | [(-121.733218,37.88641),(-121.733286,37.90617)] | Oakland ! Apricot Lane | [(-121.9471,37.401),(-121.9456,37.392)] | Oakland ! Arlington Dr | [(-121.8802,37.408),(-121.8807,37.394)] | Oakland ! Arlington Road | [(-121.7957,37.898),(-121.7956,37.906)] | Oakland ! Arroyo Las Positas | [(-121.7973,37.997),(-121.7957,37.005)] | Oakland ! Arroyo Seco | [(-121.7073,37.766),(-121.6997,37.729)] | Oakland ! Calaveras Creek | [(-121.8203,37.035),(-121.8207,37.931)] | Oakland ! Corriea Way | [(-121.9501,37.402),(-121.9505,37.398)] | Oakland ! Cowing Road | [(-122.0002,37.934),(-121.9772,37.782)] | Oakland ! Driscoll Road | [(-121.9482,37.403),(-121.948451,37.39995)] | Oakland ! Enos Way | [(-121.7677,37.896),(-121.7673,37.91)] | Oakland ! Fairview Ave | [(-121.999,37.428),(-121.9863,37.351)] | Oakland ! I- 580 | [(-121.9322,37.989),(-121.9243,37.006),(-121.9217,37.014)] | Oakland ! I- 580 | [(-122.018,37.019),(-122.0009,37.032),(-121.9787,37.983),(-121.958,37.984),(-121.9571,37.986)] | Oakland ! I- 580 Ramp | [(-121.8521,37.011),(-121.8479,37.999),(-121.8476,37.999),(-121.8456,37.01),(-121.8455,37.011)] | Oakland ! I- 580 Ramp | [(-121.8743,37.014),(-121.8722,37.999),(-121.8714,37.999)] | Oakland ! I- 580 Ramp | [(-121.9043,37.998),(-121.9036,37.013),(-121.902632,37.0174),(-121.9025,37.018)] | Oakland ! I- 580 Ramp | [(-121.9368,37.986),(-121.936483,37.98832),(-121.9353,37.997),(-121.93504,37.00035),(-121.9346,37.006),(-121.933764,37.00031),(-121.9333,37.997),(-121.9322,37.989)] | Oakland ! I- 580/I-680 Ramp | ((-121.9207,37.988),(-121.9192,37.016)) | Oakland ! I- 680 | ((-121.939,37.15),(-121.9387,37.145),(-121.9373,37.125),(-121.934242,37.07643),(-121.933886,37.0709),(-121.9337,37.068),(-121.933122,37.06139),(-121.932736,37.05698),(-121.93222,37.05108),(-121.931844,37.04678),(-121.930113,37.027),(-121.926829,37),(-121.9265,37.998),(-121.9217,37.96),(-121.9203,37.949),(-121.9184,37.934)) | Oakland ! I- 680 | [(-121.9101,37.715),(-121.911269,37.74682),(-121.9119,37.764),(-121.9124,37.776),(-121.9174,37.905),(-121.9194,37.957),(-121.9207,37.988)] | Oakland ! I- 680 | [(-121.9184,37.934),(-121.917,37.913),(-121.9122,37.83),(-121.9052,37.702)] | Oakland ! I- 680 Ramp | [(-121.8833,37.376),(-121.8833,37.392),(-121.883,37.4),(-121.8835,37.402),(-121.8852,37.422)] | Oakland ! I- 680 Ramp | [(-121.92,37.438),(-121.9218,37.424),(-121.9238,37.408),(-121.9252,37.392)] | Oakland ! I- 680 Ramp | [(-121.9238,37.402),(-121.9234,37.395),(-121.923,37.399)] | Oakland ! I- 880 | ((-121.9669,37.075),(-121.9663,37.071),(-121.9656,37.065),(-121.9618,37.037),(-121.95689,37),(-121.948,37.933)) | Oakland ! I- 880 | [(-121.948,37.933),(-121.9471,37.925),(-121.9467,37.923),(-121.946,37.918),(-121.9452,37.912),(-121.937,37.852)] | Oakland ! Johnson Dr | [(-121.9145,37.901),(-121.915,37.877)] | Oakland ! Juniper St | [(-121.7823,37.897),(-121.7815,37.9)] | Oakland ! Las Positas Road | [(-121.764488,37.99199),(-121.75569,37.02022)] | Oakland ! Livermore Ave | [(-121.7687,37.448),(-121.769,37.375)] | Oakland ! Livermore Ave | [(-121.772719,37.99085),(-121.7728,37.001)] | Oakland ! Mission Blvd | [(-121.918886,37),(-121.9194,37.976),(-121.9198,37.975)] | Oakland ! Mission Blvd | [(-122.0006,37.896),(-121.9989,37.88)] | Oakland ! Navajo Ct | [(-121.8779,37.901),(-121.8783,37.9)] | Oakland ! Paseo Padre Pkwy | [(-122.0021,37.639),(-121.996,37.628)] | Oakland ! Pimlico Dr | [(-121.8616,37.998),(-121.8618,37.008)] | Oakland ! Rosedale Ct | [(-121.9232,37.9),(-121.924,37.897)] | Oakland ! Saginaw Ct | [(-121.8803,37.898),(-121.8806,37.901)] | Oakland ! Sp Railroad | [(-121.893564,37.99009),(-121.897,37.016)] | Oakland ! Sp Railroad | [(-121.9565,37.898),(-121.9562,37.9)] | Oakland ! State Hwy 84 | [(-121.9565,37.898),(-121.956589,37.89911),(-121.9569,37.903),(-121.956,37.91),(-121.9553,37.919)] | Oakland ! Sunol Ridge Trl | [(-121.9419,37.455),(-121.9345,37.38)] | Oakland ! Tassajara Creek | [(-121.87866,37.98898),(-121.8782,37.015)] | Oakland ! Theresa Way | [(-121.7289,37.906),(-121.728,37.899)] | Oakland ! Tissiack Way | [(-121.920364,37),(-121.9208,37.995)] | Oakland ! Vallecitos Road | [(-121.8699,37.916),(-121.8703,37.891)] | Oakland ! Warm Springs Blvd | [(-121.933956,37),(-121.9343,37.97)] | Oakland ! Welch Creek Road | [(-121.7695,37.386),(-121.7737,37.413)] | Oakland ! Whitlock Creek | [(-121.74683,37.91276),(-121.733107,37)] | Oakland ! 1st St | [(-121.75508,37.89294),(-121.753581,37.90031)] | Oakland ! Apricot Lane | [(-121.9471,37.401),(-121.9456,37.392)] | Oakland ! Arden Road | [(-122.0978,37.177),(-122.1,37.177)] | Oakland ! Arlington Dr | [(-121.8802,37.408),(-121.8807,37.394)] | Oakland ! Arroyo Las Positas | [(-121.7973,37.997),(-121.7957,37.005)] | Oakland ! Ash St | [(-122.0408,37.31),(-122.04,37.292)] | Oakland ! Bridgepointe Dr | [(-122.0514,37.305),(-122.0509,37.299)] | Oakland ! Butterfield Dr | [(-122.0838,37.002),(-122.0834,37.987)] | Oakland ! Calaveras Creek | [(-121.8203,37.035),(-121.8207,37.931)] | Oakland ! Celia St | [(-122.0611,37.3),(-122.0616,37.299)] | Oakland ! Claremont Pl | [(-122.0542,37.995),(-122.0542,37.008)] | Oakland ! Corriea Way | [(-121.9501,37.402),(-121.9505,37.398)] | Oakland ! Crystaline Dr | [(-121.925856,37),(-121.925869,37.00527)] | Oakland ! Decoto Road | [(-122.0159,37.006),(-122.016,37.002),(-122.0164,37.993)] | Oakland ! Driscoll Road | [(-121.9482,37.403),(-121.948451,37.39995)] | Oakland ! Eden Creek | [(-122.022037,37.00675),(-122.0221,37.998)] | Oakland ! Fairview Ave | [(-121.999,37.428),(-121.9863,37.351)] | Oakland ! Hesperian Blvd | [(-122.097,37.333),(-122.0956,37.31),(-122.0946,37.293)] | Oakland ! I- 580 | [(-121.727,37.074),(-121.7229,37.093),(-121.722301,37.09522),(-121.721001,37.10005),(-121.7194,37.106),(-121.7188,37.109),(-121.7168,37.12),(-121.7163,37.123),(-121.7145,37.127),(-121.7096,37.148),(-121.707731,37.1568),(-121.7058,37.166),(-121.7055,37.168),(-121.7044,37.174),(-121.7038,37.172),(-121.7037,37.172),(-121.7027,37.175),(-121.7001,37.181),(-121.6957,37.191),(-121.6948,37.192),(-121.6897,37.204),(-121.6697,37.185)] | Oakland ! I- 580 | [(-121.9322,37.989),(-121.9243,37.006),(-121.9217,37.014)] | Oakland ! I- 580 | [(-122.018,37.019),(-122.0009,37.032),(-121.9787,37.983),(-121.958,37.984),(-121.9571,37.986)] | Oakland ! I- 580 Ramp | [(-121.8521,37.011),(-121.8479,37.999),(-121.8476,37.999),(-121.8456,37.01),(-121.8455,37.011)] | Oakland ! I- 580 Ramp | [(-121.8743,37.014),(-121.8722,37.999),(-121.8714,37.999)] | Oakland ! I- 580 Ramp | [(-121.9043,37.998),(-121.9036,37.013),(-121.902632,37.0174),(-121.9025,37.018)] | Oakland ! I- 580 Ramp | [(-121.9368,37.986),(-121.936483,37.98832),(-121.9353,37.997),(-121.93504,37.00035),(-121.9346,37.006),(-121.933764,37.00031),(-121.9333,37.997),(-121.9322,37.989)] | Oakland ! I- 580/I-680 Ramp | ((-121.9207,37.988),(-121.9192,37.016)) | Oakland ! I- 680 | ((-121.939,37.15),(-121.9387,37.145),(-121.9373,37.125),(-121.934242,37.07643),(-121.933886,37.0709),(-121.9337,37.068),(-121.933122,37.06139),(-121.932736,37.05698),(-121.93222,37.05108),(-121.931844,37.04678),(-121.930113,37.027),(-121.926829,37),(-121.9265,37.998),(-121.9217,37.96),(-121.9203,37.949),(-121.9184,37.934)) | Oakland ! I- 680 Ramp | [(-121.8833,37.376),(-121.8833,37.392),(-121.883,37.4),(-121.8835,37.402),(-121.8852,37.422)] | Oakland ! I- 680 Ramp | [(-121.92,37.438),(-121.9218,37.424),(-121.9238,37.408),(-121.9252,37.392)] | Oakland ! I- 680 Ramp | [(-121.9238,37.402),(-121.9234,37.395),(-121.923,37.399)] | Oakland ! I- 880 | ((-121.9669,37.075),(-121.9663,37.071),(-121.9656,37.065),(-121.9618,37.037),(-121.95689,37),(-121.948,37.933)) | Oakland ! I- 880 | [(-122.0612,37.003),(-122.0604,37.991),(-122.0596,37.982),(-122.0585,37.967),(-122.0583,37.961),(-122.0553,37.918),(-122.053635,37.89475),(-122.050759,37.8546),(-122.05,37.844),(-122.0485,37.817),(-122.0483,37.813),(-122.0482,37.811)] | Oakland ! I- 880 | [(-122.0831,37.312),(-122.0819,37.296),(-122.081,37.285),(-122.0786,37.248),(-122.078,37.24),(-122.077642,37.23496),(-122.076983,37.22567),(-122.076599,37.22026),(-122.076229,37.21505),(-122.0758,37.209)] | Oakland ! I- 880 Ramp | [(-122.0019,37.301),(-122.002,37.293)] | Oakland ! I- 880 Ramp | [(-122.0041,37.313),(-122.0018,37.315),(-122.0007,37.315),(-122.0005,37.313),(-122.0002,37.308),(-121.9995,37.289)] | Oakland ! I- 880 Ramp | [(-122.0041,37.313),(-122.0038,37.308),(-122.0039,37.284),(-122.0013,37.287),(-121.9995,37.289)] | Oakland ! I- 880 Ramp | [(-122.059,37.982),(-122.0577,37.984),(-122.0612,37.003)] | Oakland ! I- 880 Ramp | [(-122.0618,37.011),(-122.0631,37.982),(-122.0585,37.967)] | Oakland ! I- 880 Ramp | [(-122.085,37.34),(-122.0801,37.316),(-122.081,37.285)] | Oakland ! I- 880 Ramp | [(-122.085,37.34),(-122.0866,37.316),(-122.0819,37.296)] | Oakland ! Kildare Road | [(-122.0968,37.016),(-122.0959,37)] | Oakland ! Las Positas Road | [(-121.764488,37.99199),(-121.75569,37.02022)] | Oakland ! Livermore Ave | [(-121.7687,37.448),(-121.769,37.375)] | Oakland ! Livermore Ave | [(-121.772719,37.99085),(-121.7728,37.001)] | Oakland ! Mildred Ct | [(-122.0002,37.388),(-121.9998,37.386)] | Oakland ! Miramar Ave | [(-122.1009,37.025),(-122.099089,37.03209)] | Oakland ! Mission Blvd | [(-121.918886,37),(-121.9194,37.976),(-121.9198,37.975)] | Oakland ! Moores Ave | [(-122.0087,37.301),(-122.0094,37.292)] | Oakland ! Oakridge Road | [(-121.8316,37.049),(-121.828382,37)] | Oakland ! Paseo Padre Pkwy | [(-121.9143,37.005),(-121.913522,37)] | Oakland ! Periwinkle Road | [(-122.0451,37.301),(-122.044758,37.29844)] | Oakland ! Pimlico Dr | [(-121.8616,37.998),(-121.8618,37.008)] | Oakland ! Railroad Ave | [(-122.0245,37.013),(-122.0234,37.003),(-122.0223,37.993)] | Oakland ! Ranspot Dr | [(-122.0972,37.999),(-122.0959,37)] | Oakland ! Santa Maria Ave | [(-122.0773,37),(-122.0773,37.98)] | Oakland ! Sp Railroad | [(-121.893564,37.99009),(-121.897,37.016)] | Oakland ! Sp Railroad | [(-122.0734,37.001),(-122.0734,37.997)] | Oakland ! Stanton Ave | [(-122.100392,37.0697),(-122.099513,37.06052)] | Oakland ! Sunol Ridge Trl | [(-121.9419,37.455),(-121.9345,37.38)] | Oakland ! Tassajara Creek | [(-121.87866,37.98898),(-121.8782,37.015)] | Oakland ! Thackeray Ave | [(-122.072,37.305),(-122.0715,37.298)] | Oakland ! Tissiack Way | [(-121.920364,37),(-121.9208,37.995)] | Oakland ! Warm Springs Blvd | [(-121.933956,37),(-121.9343,37.97)] | Oakland ! Welch Creek Road | [(-121.7695,37.386),(-121.7737,37.413)] | Oakland ! Western Pacific Railroad Spur | [(-122.0394,37.018),(-122.0394,37.961)] | Oakland ! Whitlock Creek | [(-121.74683,37.91276),(-121.733107,37)] | Oakland ! Avenue 134th | [(-122.1823,37.002),(-122.1851,37.992)] | Oakland ! Avenue 140th | [(-122.1656,37.003),(-122.1691,37.988)] | Oakland ! B St | [(-122.1749,37.451),(-122.1743,37.443)] | Oakland ! Bancroft Ave | [(-122.15714,37.4242),(-122.156,37.409)] | Oakland ! Bancroft Ave | [(-122.1643,37.523),(-122.1631,37.508),(-122.1621,37.493)] | Oakland ! Birch St | [(-122.1617,37.425),(-122.1614,37.417)] | Oakland ! Birch St | [(-122.1673,37.509),(-122.1661,37.492)] | Oakland ! Blacow Road | [(-122.0179,37.469),(-122.0167,37.465)] | Oakland ! Broadmore Ave | [(-122.095,37.522),(-122.0936,37.497)] | Oakland ! Butterfield Dr | [(-122.0838,37.002),(-122.0834,37.987)] | Oakland ! C St | [(-122.1768,37.46),(-122.1749,37.435)] | Oakland ! Cameron Ave | [(-122.1316,37.502),(-122.1327,37.481)] | Oakland ! Cedar Blvd | [(-122.0282,37.446),(-122.0265,37.43)] | Oakland ! Chapman Dr | [(-122.0421,37.504),(-122.0414,37.498)] | Oakland ! Charles St | [(-122.0255,37.505),(-122.0252,37.499)] | Oakland ! Cherry St | [(-122.0437,37.42),(-122.0434,37.413)] | Oakland ! Claremont Pl | [(-122.0542,37.995),(-122.0542,37.008)] | Oakland ! Coliseum Way | [(-122.2001,37.47),(-122.1978,37.516)] | Oakland ! Cull Canyon Road | [(-122.0536,37.435),(-122.0499,37.315)] | Oakland ! D St | [(-122.1811,37.505),(-122.1805,37.497)] | Oakland ! Decoto Road | [(-122.0159,37.006),(-122.016,37.002),(-122.0164,37.993)] | Oakland ! Driftwood Dr | [(-122.0109,37.482),(-122.0113,37.477)] | Oakland ! E St | [(-122.1832,37.505),(-122.1826,37.498),(-122.182,37.49)] | Oakland ! Eden Ave | [(-122.1143,37.505),(-122.1142,37.491)] | Oakland ! Eden Creek | [(-122.022037,37.00675),(-122.0221,37.998)] | Oakland ! Gading Road | [(-122.0801,37.343),(-122.08,37.336)] | Oakland ! Harris Road | [(-122.0659,37.372),(-122.0675,37.363)] | Oakland ! Hegenberger Exwy | [(-122.1946,37.52),(-122.1947,37.497)] | Oakland ! Herrier St | [(-122.1943,37.006),(-122.1936,37.998)] | Oakland ! Hesperian Blvd | [(-122.097,37.333),(-122.0956,37.31),(-122.0946,37.293)] | Oakland ! I- 580 | [(-122.1108,37.023),(-122.1101,37.02),(-122.108103,37.00764),(-122.108,37.007),(-122.1069,37.998),(-122.1064,37.994),(-122.1053,37.982),(-122.1048,37.977),(-122.1032,37.958),(-122.1026,37.953),(-122.1013,37.938),(-122.0989,37.911),(-122.0984,37.91),(-122.098,37.908)] | Oakland ! I- 580 | [(-122.1543,37.703),(-122.1535,37.694),(-122.1512,37.655),(-122.1475,37.603),(-122.1468,37.583),(-122.1472,37.569),(-122.149044,37.54874),(-122.1493,37.546),(-122.1501,37.532),(-122.1506,37.509),(-122.1495,37.482),(-122.1487,37.467),(-122.1477,37.447),(-122.1414,37.383),(-122.1404,37.376),(-122.1398,37.372),(-122.139,37.356),(-122.1388,37.353),(-122.1385,37.34),(-122.1382,37.33),(-122.1378,37.316)] | Oakland ! I- 580 Ramp | [(-122.1086,37.003),(-122.1068,37.993),(-122.1066,37.992),(-122.1053,37.982)] | Oakland ! I- 580 Ramp | [(-122.1414,37.383),(-122.1407,37.376),(-122.1403,37.372),(-122.139,37.356)] | Oakland ! I- 880 | [(-122.0219,37.466),(-122.0205,37.447),(-122.020331,37.44447),(-122.020008,37.43962),(-122.0195,37.432),(-122.0193,37.429),(-122.0164,37.393),(-122.010219,37.34771),(-122.0041,37.313)] | Oakland ! I- 880 | [(-122.0375,37.632),(-122.0359,37.619),(-122.0358,37.616),(-122.034514,37.60409),(-122.031876,37.57965),(-122.031193,37.57332),(-122.03016,37.56375),(-122.02943,37.55698),(-122.028689,37.54929),(-122.027833,37.53908),(-122.025979,37.51698),(-122.0238,37.491)] | Oakland ! I- 880 | [(-122.0612,37.003),(-122.0604,37.991),(-122.0596,37.982),(-122.0585,37.967),(-122.0583,37.961),(-122.0553,37.918),(-122.053635,37.89475),(-122.050759,37.8546),(-122.05,37.844),(-122.0485,37.817),(-122.0483,37.813),(-122.0482,37.811)] | Oakland ! I- 880 | [(-122.0978,37.528),(-122.096,37.496),(-122.0931,37.453),(-122.09277,37.4496),(-122.090189,37.41442),(-122.0896,37.405),(-122.085,37.34)] | Oakland ! I- 880 | [(-122.1755,37.185),(-122.1747,37.178),(-122.1742,37.173),(-122.1692,37.126),(-122.167792,37.11594),(-122.16757,37.11435),(-122.1671,37.111),(-122.1655,37.1),(-122.165169,37.09811),(-122.1641,37.092),(-122.1596,37.061),(-122.158381,37.05275),(-122.155991,37.03657),(-122.1531,37.017),(-122.1478,37.98),(-122.1407,37.932),(-122.1394,37.924),(-122.1389,37.92),(-122.1376,37.91)] | Oakland ! I- 880 Ramp | [(-122.0236,37.488),(-122.0231,37.458),(-122.0227,37.458),(-122.0223,37.452),(-122.0205,37.447)] | Oakland ! I- 880 Ramp | [(-122.0238,37.491),(-122.0215,37.483),(-122.0211,37.477),(-122.0205,37.447)] | Oakland ! I- 880 Ramp | [(-122.059,37.982),(-122.0577,37.984),(-122.0612,37.003)] | Oakland ! I- 880 Ramp | [(-122.0618,37.011),(-122.0631,37.982),(-122.0585,37.967)] | Oakland ! I- 880 Ramp | [(-122.085,37.34),(-122.0801,37.316),(-122.081,37.285)] | Oakland ! I- 880 Ramp | [(-122.085,37.34),(-122.0866,37.316),(-122.0819,37.296)] | Oakland ! Kaiser Dr | [(-122.067163,37.47821),(-122.060402,37.51961)] | Oakland ! La Playa Dr | [(-122.1039,37.545),(-122.101,37.493)] | Oakland ! Locust St | [(-122.1606,37.007),(-122.1593,37.987)] | Oakland ! Logan Ct | [(-122.0053,37.492),(-122.0061,37.484)] | Oakland ! Magnolia St | [(-122.0971,37.5),(-122.0962,37.484)] | Oakland ! Mattos Dr | [(-122.0005,37.502),(-122.000898,37.49683)] | Oakland ! Maubert Ave | [(-122.1114,37.009),(-122.1096,37.995)] | Oakland ! McClure Ave | [(-122.1431,37.001),(-122.1436,37.998)] | Oakland ! Medlar Dr | [(-122.0627,37.378),(-122.0625,37.375)] | Oakland ! National Ave | [(-122.1192,37.5),(-122.1281,37.489)] | Oakland ! Newark Blvd | [(-122.0352,37.438),(-122.0341,37.423)] | Oakland ! Portsmouth Ave | [(-122.1064,37.315),(-122.1064,37.308)] | Oakland ! Railroad Ave | [(-122.0245,37.013),(-122.0234,37.003),(-122.0223,37.993)] | Oakland ! Ranspot Dr | [(-122.0972,37.999),(-122.0959,37)] | Oakland ! Redwood Road | [(-122.1493,37.98),(-122.1437,37.001)] | Oakland ! Santa Maria Ave | [(-122.0773,37),(-122.0773,37.98)] | Oakland ! Skyline Blvd | [(-122.1738,37.01),(-122.1714,37.996)] | Oakland ! Skyline Dr | [(-122.0277,37.5),(-122.0284,37.498)] | Oakland ! Sp Railroad | [(-122.0734,37.001),(-122.0734,37.997)] | Oakland ! Sp Railroad | [(-122.137792,37.003),(-122.1365,37.992),(-122.131257,37.94612)] | Oakland ! Sp Railroad | [(-122.1947,37.497),(-122.193328,37.4848)] | Oakland ! State Hwy 84 | [(-122.0671,37.426),(-122.07,37.402),(-122.074,37.37),(-122.0773,37.338)] | Oakland ! State Hwy 92 | [(-122.1085,37.326),(-122.1095,37.322),(-122.1111,37.316),(-122.1119,37.313),(-122.1125,37.311),(-122.1131,37.308),(-122.1167,37.292),(-122.1187,37.285),(-122.12,37.28)] | Oakland ! State Hwy 92 Ramp | [(-122.1086,37.321),(-122.1089,37.315),(-122.1111,37.316)] | Oakland ! Tennyson Road | [(-122.0891,37.317),(-122.0927,37.317)] | Oakland ! Western Pacific Railroad Spur | [(-122.0394,37.018),(-122.0394,37.961)] | Oakland ! Willimet Way | [(-122.0964,37.517),(-122.0949,37.493)] | Oakland ! Wisconsin St | [(-122.1994,37.017),(-122.1975,37.998),(-122.1971,37.994)] | Oakland ! 100th Ave | [(-122.1657,37.429),(-122.1647,37.432)] | Oakland ! 107th Ave | [(-122.1555,37.403),(-122.1531,37.41)] | Oakland ! 85th Ave | [(-122.1877,37.466),(-122.186,37.476)] | Oakland ! 89th Ave | [(-122.1822,37.459),(-122.1803,37.471)] | Oakland ! 98th Ave | [(-122.1568,37.498),(-122.1558,37.502)] | Oakland ! 98th Ave | [(-122.1693,37.438),(-122.1682,37.444)] | Oakland ! Allen Ct | [(-122.0131,37.602),(-122.0117,37.597)] | Berkeley ! Alvarado Niles Road | [(-122.0325,37.903),(-122.0316,37.9)] | Berkeley ! Arizona St | [(-122.0381,37.901),(-122.0367,37.898)] | Berkeley ! Avenue 134th | [(-122.1823,37.002),(-122.1851,37.992)] | Berkeley ! Avenue 140th | [(-122.1656,37.003),(-122.1691,37.988)] | Berkeley ! Avenue D | [(-122.298,37.848),(-122.3024,37.849)] | Berkeley ! Broadway | [(-122.2409,37.586),(-122.2395,37.601)] | Berkeley ! Buckingham Blvd | [(-122.2231,37.59),(-122.2214,37.606)] | Berkeley ! Butterfield Dr | [(-122.0838,37.002),(-122.0834,37.987)] | Berkeley ! California St | [(-122.2032,37.005),(-122.2016,37.996)] | Berkeley ! Campus Dr | [(-122.1704,37.905),(-122.1678,37.868),(-122.1671,37.865)] | Berkeley ! Carson St | [(-122.1846,37.9),(-122.1843,37.901)] | Berkeley ! Cedar St | [(-122.3011,37.737),(-122.2999,37.739)] | Berkeley ! Central Ave | [(-122.2343,37.602),(-122.2331,37.595)] | Berkeley ! Champion St | [(-122.214,37.991),(-122.2147,37.002)] | Berkeley ! Claremont Pl | [(-122.0542,37.995),(-122.0542,37.008)] | Berkeley ! Coliseum Way | [(-122.2113,37.626),(-122.2085,37.592),(-122.2063,37.568)] | Berkeley ! Cornell Ave | [(-122.2956,37.925),(-122.2949,37.906),(-122.2939,37.875)] | Berkeley ! Creston Road | [(-122.2639,37.002),(-122.2613,37.986),(-122.2602,37.978),(-122.2598,37.973)] | Berkeley ! Crow Canyon Creek | [(-122.043,37.905),(-122.0368,37.71)] | Berkeley ! Cull Creek | [(-122.0624,37.875),(-122.0582,37.527)] | Berkeley ! Decoto Road | [(-122.0159,37.006),(-122.016,37.002),(-122.0164,37.993)] | Berkeley ! Deering St | [(-122.2146,37.904),(-122.2126,37.897)] | Berkeley ! Dimond Ave | [(-122.2167,37.994),(-122.2162,37.006)] | Berkeley ! Donna Way | [(-122.1333,37.606),(-122.1316,37.599)] | Berkeley ! Eden Creek | [(-122.022037,37.00675),(-122.0221,37.998)] | Berkeley ! Euclid Ave | [(-122.2671,37.009),(-122.2666,37.987)] | Berkeley ! Foothill Blvd | [(-122.2414,37.9),(-122.2403,37.893)] | Berkeley ! Fountain St | [(-122.2306,37.593),(-122.2293,37.605)] | Berkeley ! Grizzly Peak Blvd | [(-122.2213,37.638),(-122.2127,37.581)] | Berkeley ! Grove Way | [(-122.0643,37.884),(-122.062679,37.89162),(-122.061796,37.89578),(-122.0609,37.9)] | Berkeley ! Herrier St | [(-122.1943,37.006),(-122.1936,37.998)] | Berkeley ! Hesperian Blvd | [(-122.1132,37.6),(-122.1123,37.586)] | Berkeley ! I- 580 | [(-122.1108,37.023),(-122.1101,37.02),(-122.108103,37.00764),(-122.108,37.007),(-122.1069,37.998),(-122.1064,37.994),(-122.1053,37.982),(-122.1048,37.977),(-122.1032,37.958),(-122.1026,37.953),(-122.1013,37.938),(-122.0989,37.911),(-122.0984,37.91),(-122.098,37.908)] | Berkeley ! I- 580 | [(-122.1543,37.703),(-122.1535,37.694),(-122.1512,37.655),(-122.1475,37.603),(-122.1468,37.583),(-122.1472,37.569),(-122.149044,37.54874),(-122.1493,37.546),(-122.1501,37.532),(-122.1506,37.509),(-122.1495,37.482),(-122.1487,37.467),(-122.1477,37.447),(-122.1414,37.383),(-122.1404,37.376),(-122.1398,37.372),(-122.139,37.356),(-122.1388,37.353),(-122.1385,37.34),(-122.1382,37.33),(-122.1378,37.316)] | Berkeley ! I- 580 | [(-122.2197,37.99),(-122.22,37.99),(-122.222092,37.99523),(-122.2232,37.998),(-122.224146,37.99963),(-122.2261,37.003),(-122.2278,37.007),(-122.2302,37.026),(-122.2323,37.043),(-122.2344,37.059),(-122.235405,37.06427),(-122.2365,37.07)] | Berkeley ! I- 580 Ramp | [(-122.093241,37.90351),(-122.09364,37.89634),(-122.093788,37.89212)] | Berkeley ! I- 580 Ramp | [(-122.0934,37.896),(-122.09257,37.89961),(-122.0911,37.906)] | Berkeley ! I- 580 Ramp | [(-122.0941,37.897),(-122.0943,37.902)] | Berkeley ! I- 580 Ramp | [(-122.096,37.888),(-122.0962,37.891),(-122.0964,37.9)] | Berkeley ! I- 580 Ramp | [(-122.101,37.898),(-122.1005,37.902),(-122.0989,37.911)] | Berkeley ! I- 580 Ramp | [(-122.1086,37.003),(-122.1068,37.993),(-122.1066,37.992),(-122.1053,37.982)] | Berkeley ! I- 880 | [(-122.0375,37.632),(-122.0359,37.619),(-122.0358,37.616),(-122.034514,37.60409),(-122.031876,37.57965),(-122.031193,37.57332),(-122.03016,37.56375),(-122.02943,37.55698),(-122.028689,37.54929),(-122.027833,37.53908),(-122.025979,37.51698),(-122.0238,37.491)] | Berkeley ! I- 880 | [(-122.0612,37.003),(-122.0604,37.991),(-122.0596,37.982),(-122.0585,37.967),(-122.0583,37.961),(-122.0553,37.918),(-122.053635,37.89475),(-122.050759,37.8546),(-122.05,37.844),(-122.0485,37.817),(-122.0483,37.813),(-122.0482,37.811)] | Berkeley ! I- 880 | [(-122.1365,37.902),(-122.1358,37.898),(-122.1333,37.881),(-122.1323,37.874),(-122.1311,37.866),(-122.1308,37.865),(-122.1307,37.864),(-122.1289,37.851),(-122.1277,37.843),(-122.1264,37.834),(-122.1231,37.812),(-122.1165,37.766),(-122.1104,37.72),(-122.109695,37.71094),(-122.109,37.702),(-122.108312,37.69168),(-122.1076,37.681)] | Berkeley ! I- 880 | [(-122.1755,37.185),(-122.1747,37.178),(-122.1742,37.173),(-122.1692,37.126),(-122.167792,37.11594),(-122.16757,37.11435),(-122.1671,37.111),(-122.1655,37.1),(-122.165169,37.09811),(-122.1641,37.092),(-122.1596,37.061),(-122.158381,37.05275),(-122.155991,37.03657),(-122.1531,37.017),(-122.1478,37.98),(-122.1407,37.932),(-122.1394,37.924),(-122.1389,37.92),(-122.1376,37.91)] | Berkeley ! I- 880 | [(-122.2214,37.711),(-122.2202,37.699),(-122.2199,37.695),(-122.219,37.682),(-122.2184,37.672),(-122.2173,37.652),(-122.2159,37.638),(-122.2144,37.616),(-122.2138,37.612),(-122.2135,37.609),(-122.212,37.592),(-122.2116,37.586),(-122.2111,37.581)] | Berkeley ! I- 880 | [(-122.2707,37.975),(-122.2693,37.972),(-122.2681,37.966),(-122.267,37.962),(-122.2659,37.957),(-122.2648,37.952),(-122.2636,37.946),(-122.2625,37.935),(-122.2617,37.927),(-122.2607,37.921),(-122.2593,37.916),(-122.258,37.911),(-122.2536,37.898),(-122.2432,37.858),(-122.2408,37.845),(-122.2386,37.827),(-122.2374,37.811)] | Berkeley ! I- 880 Ramp | [(-122.059,37.982),(-122.0577,37.984),(-122.0612,37.003)] | Berkeley ! I- 880 Ramp | [(-122.0618,37.011),(-122.0631,37.982),(-122.0585,37.967)] | Berkeley ! I- 880 Ramp | [(-122.1029,37.61),(-122.1013,37.587),(-122.0999,37.569)] | Berkeley ! I- 880 Ramp | [(-122.1379,37.891),(-122.1383,37.897),(-122.1377,37.902)] | Berkeley ! I- 880 Ramp | [(-122.1379,37.931),(-122.137597,37.92736),(-122.1374,37.925),(-122.1373,37.924),(-122.1369,37.914),(-122.1358,37.905),(-122.1365,37.908),(-122.1358,37.898)] | Berkeley ! I- 880 Ramp | [(-122.2536,37.898),(-122.254,37.902)] | Berkeley ! Jackson St | [(-122.0845,37.6),(-122.0842,37.606)] | Berkeley ! Joyce St | [(-122.0792,37.604),(-122.0774,37.581)] | Berkeley ! Keeler Ave | [(-122.2578,37.906),(-122.2579,37.899)] | Berkeley ! Laguna Ave | [(-122.2099,37.989),(-122.2089,37)] | Berkeley ! Lakehurst Cir | [(-122.284729,37.89025),(-122.286096,37.90364)] | Berkeley ! Lakeshore Ave | [(-122.2586,37.99),(-122.2556,37.006)] | Berkeley ! Linden St | [(-122.2867,37.998),(-122.2864,37.008)] | Berkeley ! Locust St | [(-122.1606,37.007),(-122.1593,37.987)] | Berkeley ! Marin Ave | [(-122.2741,37.894),(-122.272,37.901)] | Berkeley ! Martin Luther King Jr Way | [(-122.2712,37.608),(-122.2711,37.599)] | Berkeley ! Maubert Ave | [(-122.1114,37.009),(-122.1096,37.995)] | Berkeley ! McClure Ave | [(-122.1431,37.001),(-122.1436,37.998)] | Berkeley ! Miller Road | [(-122.0902,37.645),(-122.0865,37.545)] | Berkeley ! Mission Blvd | [(-122.0006,37.896),(-121.9989,37.88)] | Berkeley ! Oakland Inner Harbor | [(-122.2625,37.913),(-122.260016,37.89484)] | Berkeley ! Oneil Ave | [(-122.076754,37.62476),(-122.0745,37.595)] | Berkeley ! Parkridge Dr | [(-122.1438,37.884),(-122.1428,37.9)] | Berkeley ! Parkside Dr | [(-122.0475,37.603),(-122.0443,37.596)] | Berkeley ! Paseo Padre Pkwy | [(-122.0021,37.639),(-121.996,37.628)] | Berkeley ! Pearl St | [(-122.2383,37.594),(-122.2366,37.615)] | Berkeley ! Railroad Ave | [(-122.0245,37.013),(-122.0234,37.003),(-122.0223,37.993)] | Berkeley ! Ranspot Dr | [(-122.0972,37.999),(-122.0959,37)] | Berkeley ! Redding St | [(-122.1978,37.901),(-122.1975,37.895)] | Berkeley ! Redwood Road | [(-122.1493,37.98),(-122.1437,37.001)] | Berkeley ! Roca Dr | [(-122.0335,37.609),(-122.0314,37.599)] | Berkeley ! Sacramento St | [(-122.2799,37.606),(-122.2797,37.597)] | Berkeley ! Saddle Brook Dr | [(-122.1478,37.909),(-122.1454,37.904),(-122.1451,37.888)] | Berkeley ! San Andreas Dr | [(-122.0609,37.9),(-122.0614,37.895)] | Berkeley ! Santa Maria Ave | [(-122.0773,37),(-122.0773,37.98)] | Berkeley ! Shattuck Ave | [(-122.2686,37.904),(-122.2686,37.897)] | Berkeley ! Shoreline Dr | [(-122.2657,37.603),(-122.2648,37.6)] | Berkeley ! Skyline Blvd | [(-122.1738,37.01),(-122.1714,37.996)] | Berkeley ! Skywest Dr | [(-122.1161,37.62),(-122.1123,37.586)] | Berkeley ! Southern Pacific Railroad | [(-122.3002,37.674),(-122.2999,37.661)] | Berkeley ! Sp Railroad | [(-122.0734,37.001),(-122.0734,37.997)] | Berkeley ! Sp Railroad | [(-122.0914,37.601),(-122.087,37.56),(-122.086408,37.5551)] | Berkeley ! Sp Railroad | [(-122.137792,37.003),(-122.1365,37.992),(-122.131257,37.94612)] | Berkeley ! State Hwy 123 | [(-122.3004,37.986),(-122.2998,37.969),(-122.2995,37.962),(-122.2992,37.952),(-122.299,37.942),(-122.2987,37.935),(-122.2984,37.924),(-122.2982,37.92),(-122.2976,37.904),(-122.297,37.88),(-122.2966,37.869),(-122.2959,37.848),(-122.2961,37.843)] | Berkeley ! State Hwy 13 | [(-122.1797,37.943),(-122.179871,37.91849),(-122.18,37.9),(-122.179023,37.86615),(-122.1787,37.862),(-122.1781,37.851),(-122.1777,37.845),(-122.1773,37.839),(-122.177,37.833)] | Berkeley ! State Hwy 238 | ((-122.098,37.908),(-122.0983,37.907),(-122.099,37.905),(-122.101,37.898),(-122.101535,37.89711),(-122.103173,37.89438),(-122.1046,37.892),(-122.106,37.89)) | Berkeley ! State Hwy 238 Ramp | [(-122.1288,37.9),(-122.1293,37.895),(-122.1296,37.906)] | Berkeley ! Stuart St | [(-122.2518,37.6),(-122.2507,37.601),(-122.2491,37.606)] | Berkeley ! Tupelo Ter | [(-122.059087,37.6113),(-122.057021,37.59942)] | Berkeley ! West Loop Road | [(-122.0576,37.604),(-122.0602,37.586)] | Berkeley ! Western Pacific Railroad Spur | [(-122.0394,37.018),(-122.0394,37.961)] | Berkeley ! Wisconsin St | [(-122.1994,37.017),(-122.1975,37.998),(-122.1971,37.994)] | Berkeley ! Wp Railroad | [(-122.254,37.902),(-122.2506,37.891)] | Berkeley ! 19th Ave | [(-122.2366,37.897),(-122.2359,37.905)] | Berkeley ! 5th St | [(-122.296,37.615),(-122.2953,37.598)] | Berkeley ! 82nd Ave | [(-122.1695,37.596),(-122.1681,37.603)] | Berkeley ! Ada St | [(-122.2487,37.398),(-122.2496,37.401)] | Lafayette ! California St | [(-122.2032,37.005),(-122.2016,37.996)] | Lafayette ! Capricorn Ave | [(-122.2176,37.404),(-122.2164,37.384)] | Lafayette ! Chambers Dr | [(-122.2004,37.352),(-122.1972,37.368)] | Lafayette ! Chambers Lane | [(-122.2001,37.359),(-122.1975,37.371)] | Lafayette ! Champion St | [(-122.214,37.991),(-122.2147,37.002)] | Lafayette ! Coolidge Ave | [(-122.2007,37.058),(-122.1992,37.06)] | Lafayette ! Creston Road | [(-122.2639,37.002),(-122.2613,37.986),(-122.2602,37.978),(-122.2598,37.973)] | Lafayette ! Dimond Ave | [(-122.2167,37.994),(-122.2162,37.006)] | Lafayette ! Edgewater Dr | [(-122.201,37.379),(-122.2042,37.41)] | Lafayette ! Euclid Ave | [(-122.2671,37.009),(-122.2666,37.987)] | Lafayette ! Heartwood Dr | [(-122.2006,37.341),(-122.1992,37.338)] | Lafayette ! Hollis St | [(-122.2885,37.397),(-122.289,37.414)] | Lafayette ! I- 580 | [(-122.2197,37.99),(-122.22,37.99),(-122.222092,37.99523),(-122.2232,37.998),(-122.224146,37.99963),(-122.2261,37.003),(-122.2278,37.007),(-122.2302,37.026),(-122.2323,37.043),(-122.2344,37.059),(-122.235405,37.06427),(-122.2365,37.07)] | Lafayette ! I- 80 | ((-122.2937,37.277),(-122.3016,37.262)) | Lafayette ! I- 80 | ((-122.2962,37.273),(-122.3004,37.264)) | Lafayette ! I- 80 Ramp | [(-122.2962,37.413),(-122.2959,37.382),(-122.2951,37.372)] | Lafayette ! I- 880 Ramp | [(-122.2771,37.002),(-122.278,37)] | Lafayette ! Indian Way | [(-122.2066,37.398),(-122.2045,37.411)] | Lafayette ! Laguna Ave | [(-122.2099,37.989),(-122.2089,37)] | Lafayette ! Lakeshore Ave | [(-122.2586,37.99),(-122.2556,37.006)] | Lafayette ! Linden St | [(-122.2867,37.998),(-122.2864,37.008)] | Lafayette ! Mandalay Road | [(-122.2322,37.397),(-122.2321,37.403)] | Lafayette ! Proctor Ave | [(-122.2267,37.406),(-122.2251,37.386)] | Lafayette ! Sheridan Road | [(-122.2279,37.425),(-122.2253,37.411),(-122.2223,37.377)] | Lafayette ! State Hwy 13 | [(-122.2049,37.2),(-122.20328,37.17975),(-122.1989,37.125),(-122.198078,37.11641),(-122.1975,37.11)] | Lafayette ! State Hwy 13 Ramp | [(-122.2244,37.427),(-122.223,37.414),(-122.2214,37.396),(-122.2213,37.388)] | Lafayette ! State Hwy 24 | [(-122.2674,37.246),(-122.2673,37.248),(-122.267,37.261),(-122.2668,37.271),(-122.2663,37.298),(-122.2659,37.315),(-122.2655,37.336),(-122.265007,37.35882),(-122.264443,37.37286),(-122.2641,37.381),(-122.2638,37.388),(-122.2631,37.396),(-122.2617,37.405),(-122.2615,37.407),(-122.2605,37.412)] | Lafayette ! Taurus Ave | [(-122.2159,37.416),(-122.2128,37.389)] | Lafayette ! 14th St | [(-122.299,37.147),(-122.3,37.148)] | Lafayette ! 5th St | [(-122.278,37),(-122.2792,37.005),(-122.2803,37.009)] | Lafayette ! 98th Ave | [(-122.2001,37.258),(-122.1974,37.27)] | Lafayette ! (333 rows) ! SELECT name, #thepath FROM iexit ORDER BY 1, 2; ! name | ?column? ! ------------------------------------+---------- ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 2 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 3 ! I- 580 | 4 ! I- 580 | 4 ! I- 580 | 4 ! I- 580 | 4 ! I- 580 | 5 ! I- 580 | 5 ! I- 580 | 5 ! I- 580 | 5 ! I- 580 | 5 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 6 ! I- 580 | 7 ! I- 580 | 7 ! I- 580 | 7 ! I- 580 | 7 ! I- 580 | 7 ! I- 580 | 7 ! I- 580 | 7 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 8 ! I- 580 | 9 ! I- 580 | 9 ! I- 580 | 9 ! I- 580 | 9 ! I- 580 | 9 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 12 ! I- 580 | 13 ! I- 580 | 13 ! I- 580 | 13 ! I- 580 | 13 ! I- 580 | 13 ! I- 580 | 13 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 14 ! I- 580 | 18 ! I- 580 | 18 ! I- 580 | 18 ! I- 580 | 18 ! I- 580 | 18 ! I- 580 | 18 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 21 ! I- 580 | 22 ! I- 580 | 22 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 2 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 3 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 4 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 5 ! I- 580 Ramp | 6 ! I- 580 Ramp | 6 ! I- 580 Ramp | 6 ! I- 580 Ramp | 7 ! I- 580 Ramp | 8 ! I- 580 Ramp | 8 ! I- 580 Ramp | 8 ! I- 580 Ramp | 8 ! I- 580 Ramp | 8 ! I- 580 Ramp | 8 ! I- 580/I-680 Ramp | 2 ! I- 580/I-680 Ramp | 2 ! I- 580/I-680 Ramp | 2 ! I- 580/I-680 Ramp | 2 ! I- 580/I-680 Ramp | 2 ! I- 580/I-680 Ramp | 2 ! I- 580/I-680 Ramp | 4 ! I- 580/I-680 Ramp | 4 ! I- 580/I-680 Ramp | 4 ! I- 580/I-680 Ramp | 4 ! I- 580/I-680 Ramp | 5 ! I- 580/I-680 Ramp | 6 ! I- 580/I-680 Ramp | 6 ! I- 580/I-680 Ramp | 6 ! I- 680 | 2 ! I- 680 | 2 ! I- 680 | 2 ! I- 680 | 2 ! I- 680 | 2 ! I- 680 | 2 ! I- 680 | 2 ! I- 680 | 3 ! I- 680 | 3 ! I- 680 | 3 ! I- 680 | 4 ! I- 680 | 4 ! I- 680 | 4 ! I- 680 | 5 ! I- 680 | 5 ! I- 680 | 5 ! I- 680 | 7 ! I- 680 | 7 ! I- 680 | 7 ! I- 680 | 7 ! I- 680 | 8 ! I- 680 | 8 ! I- 680 | 8 ! I- 680 | 8 ! I- 680 | 10 ! I- 680 | 10 ! I- 680 | 10 ! I- 680 | 10 ! I- 680 | 10 ! I- 680 | 10 ! I- 680 | 10 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 | 16 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 2 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 3 ! I- 680 Ramp | 4 ! I- 680 Ramp | 4 ! I- 680 Ramp | 4 ! I- 680 Ramp | 5 ! I- 680 Ramp | 5 ! I- 680 Ramp | 5 ! I- 680 Ramp | 5 ! I- 680 Ramp | 5 ! I- 680 Ramp | 5 ! I- 680 Ramp | 6 ! I- 680 Ramp | 6 ! I- 680 Ramp | 6 ! I- 680 Ramp | 6 ! I- 680 Ramp | 7 ! I- 680 Ramp | 7 ! I- 680 Ramp | 7 ! I- 680 Ramp | 7 ! I- 680 Ramp | 8 ! I- 680 Ramp | 8 ! I- 680 Ramp | 8 ! I- 680 Ramp | 8 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 2 ! I- 80 | 3 ! I- 80 | 3 ! I- 80 | 3 ! I- 80 | 4 ! I- 80 | 4 ! I- 80 | 4 ! I- 80 | 4 ! I- 80 | 4 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 5 ! I- 80 | 11 ! I- 80 | 11 ! I- 80 | 11 ! I- 80 | 11 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 2 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 3 ! I- 80 Ramp | 4 ! I- 80 Ramp | 4 ! I- 80 Ramp | 4 ! I- 80 Ramp | 4 ! I- 80 Ramp | 5 ! I- 80 Ramp | 5 ! I- 80 Ramp | 5 ! I- 80 Ramp | 5 ! I- 80 Ramp | 5 ! I- 80 Ramp | 5 ! I- 80 Ramp | 5 ! I- 80 Ramp | 7 ! I- 80 Ramp | 7 ! I- 80 Ramp | 7 ! I- 80 Ramp | 7 ! I- 880 | 2 ! I- 880 | 2 ! I- 880 | 2 ! I- 880 | 2 ! I- 880 | 2 ! I- 880 | 5 ! I- 880 | 5 ! I- 880 | 5 ! I- 880 | 5 ! I- 880 | 5 ! I- 880 | 5 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 6 ! I- 880 | 7 ! I- 880 | 7 ! I- 880 | 7 ! I- 880 | 7 ! I- 880 | 7 ! I- 880 | 7 ! I- 880 | 7 ! I- 880 | 9 ! I- 880 | 9 ! I- 880 | 9 ! I- 880 | 9 ! I- 880 | 9 ! I- 880 | 9 ! I- 880 | 9 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 10 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 12 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 13 ! I- 880 | 14 ! I- 880 | 14 ! I- 880 | 14 ! I- 880 | 14 ! I- 880 | 14 ! I- 880 | 14 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 17 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 | 19 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 2 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 3 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 4 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 5 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 6 ! I- 880 Ramp | 8 ! I- 880 Ramp | 8 ! I- 880 Ramp | 8 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 2 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 3 ! I- 980 | 4 ! I- 980 | 4 ! I- 980 | 5 ! I- 980 | 5 ! I- 980 | 7 ! I- 980 | 7 ! I- 980 | 7 ! I- 980 | 7 ! I- 980 | 12 ! I- 980 Ramp | 3 ! I- 980 Ramp | 3 ! I- 980 Ramp | 3 ! I- 980 Ramp | 7 ! (896 rows) ! SELECT * FROM toyemp WHERE name = 'sharon'; ! name | age | location | annualsal ! --------+-----+----------+----------- ! sharon | 25 | (15,12) | 12000 ! (1 row) ! --- 3,10 ---- -- test the views defined in CREATE_VIEWS -- SELECT * FROM street; ! ERROR: Relation "street" does not exist SELECT name, #thepath FROM iexit ORDER BY 1, 2; ! ERROR: Relation "iexit" does not exist SELECT * FROM toyemp WHERE name = 'sharon'; ! ERROR: Relation "toyemp" does not exist ====================================================================== *** ./expected/alter_table.out Thu Mar 7 09:53:51 2002 --- ./results/alter_table.out Thu Mar 7 10:43:42 2002 *************** *** 96,272 **** -- it might not. Therefore, vacuum first. -- VACUUM ANALYZE tenk1; ALTER TABLE tenk1 RENAME TO ten_k; -- 20 values, sorted SELECT unique1 FROM ten_k WHERE unique1 < 20; ! unique1 ! --------- ! 0 ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! 10 ! 11 ! 12 ! 13 ! 14 ! 15 ! 16 ! 17 ! 18 ! 19 ! (20 rows) ! -- 20 values, sorted SELECT unique2 FROM ten_k WHERE unique2 < 20; ! unique2 ! --------- ! 0 ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! 10 ! 11 ! 12 ! 13 ! 14 ! 15 ! 16 ! 17 ! 18 ! 19 ! (20 rows) ! -- 100 values, sorted SELECT hundred FROM ten_k WHERE hundred = 50; ! hundred ! --------- ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! 50 ! (100 rows) ! ALTER TABLE ten_k RENAME TO tenk1; -- 5 values, sorted SELECT unique1 FROM tenk1 WHERE unique1 < 5; ! unique1 ! --------- ! 0 ! 1 ! 2 ! 3 ! 4 ! (5 rows) ! -- FOREIGN KEY CONSTRAINT adding TEST CREATE TABLE tmp2 (a int primary key); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'tmp2_pkey' for table 'tmp2' --- 96,118 ---- -- it might not. Therefore, vacuum first. -- VACUUM ANALYZE tenk1; + WARNING: VACUUM: table not found ALTER TABLE tenk1 RENAME TO ten_k; + ERROR: Relation "tenk1" does not exist -- 20 values, sorted SELECT unique1 FROM ten_k WHERE unique1 < 20; ! ERROR: Relation "ten_k" does not exist -- 20 values, sorted SELECT unique2 FROM ten_k WHERE unique2 < 20; ! ERROR: Relation "ten_k" does not exist -- 100 values, sorted SELECT hundred FROM ten_k WHERE hundred = 50; ! ERROR: Relation "ten_k" does not exist ALTER TABLE ten_k RENAME TO tenk1; + ERROR: Relation "ten_k" does not exist -- 5 values, sorted SELECT unique1 FROM tenk1 WHERE unique1 < 5; ! ERROR: Relation "tenk1" does not exist -- FOREIGN KEY CONSTRAINT adding TEST CREATE TABLE tmp2 (a int primary key); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'tmp2_pkey' for table 'tmp2' ====================================================================== *** ./expected/portals_p2.out Mon Jul 16 13:07:00 2001 --- ./results/portals_p2.out Thu Mar 7 10:43:31 2002 *************** *** 4,122 **** 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; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 50 | 253 | 0 | 2 | 0 | 10 | 0 | 50 | 50 | 50 | 50 | 0 | 1 | YBAAAA | TJAAAA | HHHHxx ! (1 row) ! FETCH all in foo14; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 51 | 76 | 1 | 3 | 1 | 11 | 1 | 51 | 51 | 51 | 51 | 2 | 3 | ZBAAAA | YCAAAA | AAAAxx ! (1 row) ! FETCH all in foo15; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 52 | 985 | 0 | 0 | 2 | 12 | 2 | 52 | 52 | 52 | 52 | 4 | 5 | ACAAAA | XLBAAA | HHHHxx ! (1 row) ! FETCH all in foo16; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 53 | 196 | 1 | 1 | 3 | 13 | 3 | 53 | 53 | 53 | 53 | 6 | 7 | BCAAAA | OHAAAA | AAAAxx ! (1 row) ! FETCH all in foo17; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 54 | 356 | 0 | 2 | 4 | 14 | 4 | 54 | 54 | 54 | 54 | 8 | 9 | CCAAAA | SNAAAA | AAAAxx ! (1 row) ! FETCH all in foo18; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 55 | 627 | 1 | 3 | 5 | 15 | 5 | 55 | 55 | 55 | 55 | 10 | 11 | DCAAAA | DYAAAA | VVVVxx ! (1 row) ! FETCH all in foo19; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 56 | 54 | 0 | 0 | 6 | 16 | 6 | 56 | 56 | 56 | 56 | 12 | 13 | ECAAAA | CCAAAA | OOOOxx ! (1 row) ! FETCH all in foo20; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 57 | 942 | 1 | 1 | 7 | 17 | 7 | 57 | 57 | 57 | 57 | 14 | 15 | FCAAAA | GKBAAA | OOOOxx ! (1 row) ! FETCH all in foo21; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 58 | 114 | 0 | 2 | 8 | 18 | 8 | 58 | 58 | 58 | 58 | 16 | 17 | GCAAAA | KEAAAA | OOOOxx ! (1 row) ! FETCH all in foo22; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 59 | 593 | 1 | 3 | 9 | 19 | 9 | 59 | 59 | 59 | 59 | 18 | 19 | HCAAAA | VWAAAA | HHHHxx ! (1 row) ! FETCH all in foo23; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 60 | 483 | 0 | 0 | 0 | 0 | 0 | 60 | 60 | 60 | 60 | 0 | 1 | ICAAAA | PSAAAA | VVVVxx ! (1 row) ! FETCH all in foo24; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 50 | 253 | 0 | 2 | 0 | 10 | 0 | 50 | 50 | 50 | 50 | 0 | 1 | YBAAAA | TJAAAA | HHHHxx ! (1 row) ! FETCH all in foo25; ! unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 ! ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- ! 60 | 483 | 0 | 0 | 0 | 0 | 0 | 60 | 60 | 60 | 60 | 0 | 1 | ICAAAA | PSAAAA | VVVVxx ! (1 row) ! 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; --- 4,96 ---- BEGIN; DECLARE foo13 CURSOR FOR SELECT * FROM onek WHERE unique1 = 50; + ERROR: Relation "onek" does not exist DECLARE foo14 CURSOR FOR SELECT * FROM onek WHERE unique1 = 51; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo15 CURSOR FOR SELECT * FROM onek WHERE unique1 = 52; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo16 CURSOR FOR SELECT * FROM onek WHERE unique1 = 53; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo17 CURSOR FOR SELECT * FROM onek WHERE unique1 = 54; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo18 CURSOR FOR SELECT * FROM onek WHERE unique1 = 55; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo19 CURSOR FOR SELECT * FROM onek WHERE unique1 = 56; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo20 CURSOR FOR SELECT * FROM onek WHERE unique1 = 57; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo21 CURSOR FOR SELECT * FROM onek WHERE unique1 = 58; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo22 CURSOR FOR SELECT * FROM onek WHERE unique1 = 59; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo23 CURSOR FOR SELECT * FROM onek WHERE unique1 = 60; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo24 CURSOR FOR SELECT * FROM onek2 WHERE unique1 = 50; + WARNING: current transaction is aborted, queries ignored until end of transaction block DECLARE foo25 CURSOR FOR SELECT * FROM onek2 WHERE unique1 = 60; + WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo13; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo14; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo15; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo16; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo17; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo18; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo19; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo20; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo21; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo22; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo23; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo24; ! WARNING: current transaction is aborted, queries ignored until end of transaction block FETCH all in foo25; ! WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo13; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo14; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo15; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo16; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo17; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo18; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo19; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo20; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo21; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo22; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo23; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo24; + WARNING: current transaction is aborted, queries ignored until end of transaction block CLOSE foo25; + WARNING: current transaction is aborted, queries ignored until end of transaction block END; ====================================================================== *** ./expected/rules.out Tue Mar 5 12:08:42 2002 --- ./results/rules.out Thu Mar 7 10:43:46 2002 *************** *** 1266,1272 **** SELECT viewname, definition FROM pg_views ORDER BY viewname; viewname | definition --------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - iexit | SELECT ih.name, ih.thepath, interpt_pp(ih.thepath, r.thepath) AS exit FROM ihighway ih, ramp r WHERE (ih.thepath ## r.thepath); pg_indexes | SELECT c.relname AS tablename, i.relname AS indexname, pg_get_indexdef(x.indexrelid) AS indexdef FROM pg_index x, pg_class c, pg_class i WHERE ((((c.relkind = 'r'::"char") AND (i.relkind = 'i'::"char")) AND (c.oid = x.indrelid)) AND (i.oid = x.indexrelid)); pg_rules | SELECT c.relname AS tablename, r.rulename, pg_get_ruledef(r.rulename) AS definition FROM pg_rewrite r, pg_class c WHERE ((r.rulename !~ '^_RET'::text) AND (c.oid = r.ev_class)); pg_stat_activity | SELECT d.oid AS datid, d.datname, pg_stat_get_backend_pid(s.backendid) AS procpid, pg_stat_get_backend_userid(s.backendid) AS usesysid, u.usename, pg_stat_get_backend_activity(s.backendid) AS current_query FROM pg_database d, (SELECT pg_stat_get_backend_idset() AS backendid) s, pg_shadow u WHERE ((pg_stat_get_backend_dbid(s.backendid) = d.oid) AND (pg_stat_get_backend_userid(s.backendid) = u.usesysid)); --- 1266,1271 ---- *************** *** 1302,1310 **** shoelace | SELECT s.sl_name, s.sl_avail, s.sl_color, s.sl_len, s.sl_unit, (s.sl_len * u.un_fact) AS sl_len_cm FROM shoelace_data s, unit u WHERE (s.sl_unit = u.un_name); shoelace_candelete | SELECT shoelace_obsolete.sl_name, shoelace_obsolete.sl_avail, shoelace_obsolete.sl_color, shoelace_obsolete.sl_len, shoelace_obsolete.sl_unit, shoelace_obsolete.sl_len_cm FROM shoelace_obsolete WHERE (shoelace_obsolete.sl_avail = 0); shoelace_obsolete | SELECT shoelace.sl_name, shoelace.sl_avail, shoelace.sl_color, shoelace.sl_len, shoelace.sl_unit, shoelace.sl_len_cm FROM shoelace WHERE (NOT (EXISTS (SELECT shoe.shoename FROM shoe WHERE (shoe.slcolor = shoelace.sl_color)))); ! street | SELECT r.name, r.thepath, c.cname FROM ONLY road r, real_city c WHERE (c.outline ## r.thepath); ! toyemp | SELECT emp.name, emp.age, emp."location", (12 * emp.salary) AS annualsal FROM emp; ! (38 rows) SELECT tablename, rulename, definition FROM pg_rules ORDER BY tablename, rulename; --- 1301,1307 ---- shoelace | SELECT s.sl_name, s.sl_avail, s.sl_color, s.sl_len, s.sl_unit, (s.sl_len * u.un_fact) AS sl_len_cm FROM shoelace_data s, unit u WHERE (s.sl_unit = u.un_name); shoelace_candelete | SELECT shoelace_obsolete.sl_name, shoelace_obsolete.sl_avail, shoelace_obsolete.sl_color, shoelace_obsolete.sl_len, shoelace_obsolete.sl_unit, shoelace_obsolete.sl_len_cm FROM shoelace_obsolete WHERE (shoelace_obsolete.sl_avail = 0); shoelace_obsolete | SELECT shoelace.sl_name, shoelace.sl_avail, shoelace.sl_color, shoelace.sl_len, shoelace.sl_unit, shoelace.sl_len_cm FROM shoelace WHERE (NOT (EXISTS (SELECT shoe.shoename FROM shoe WHERE (shoe.slcolor = shoelace.sl_color)))); ! (35 rows) SELECT tablename, rulename, definition FROM pg_rules ORDER BY tablename, rulename; ====================================================================== *** ./expected/limit.out Tue Oct 23 15:10:30 2001 --- ./results/limit.out Thu Mar 7 10:43:49 2002 *************** *** 5,110 **** SELECT ''::text AS two, unique1, unique2, stringu1 FROM onek WHERE unique1 > 50 ORDER BY unique1 LIMIT 2; ! two | unique1 | unique2 | stringu1 ! -----+---------+---------+---------- ! | 51 | 76 | ZBAAAA ! | 52 | 985 | ACAAAA ! (2 rows) ! SELECT ''::text AS five, unique1, unique2, stringu1 FROM onek WHERE unique1 > 60 ORDER BY unique1 LIMIT 5; ! five | unique1 | unique2 | stringu1 ! ------+---------+---------+---------- ! | 61 | 560 | JCAAAA ! | 62 | 633 | KCAAAA ! | 63 | 296 | LCAAAA ! | 64 | 479 | MCAAAA ! | 65 | 64 | NCAAAA ! (5 rows) ! SELECT ''::text AS two, unique1, unique2, stringu1 FROM onek WHERE unique1 > 60 AND unique1 < 63 ORDER BY unique1 LIMIT 5; ! two | unique1 | unique2 | stringu1 ! -----+---------+---------+---------- ! | 61 | 560 | JCAAAA ! | 62 | 633 | KCAAAA ! (2 rows) ! SELECT ''::text AS three, unique1, unique2, stringu1 FROM onek WHERE unique1 > 100 ORDER BY unique1 LIMIT 3 OFFSET 20; ! three | unique1 | unique2 | stringu1 ! -------+---------+---------+---------- ! | 121 | 700 | REAAAA ! | 122 | 519 | SEAAAA ! | 123 | 777 | TEAAAA ! (3 rows) ! SELECT ''::text AS zero, unique1, unique2, stringu1 FROM onek WHERE unique1 < 50 ORDER BY unique1 DESC LIMIT 8 OFFSET 99; ! zero | unique1 | unique2 | stringu1 ! ------+---------+---------+---------- ! (0 rows) ! SELECT ''::text AS eleven, unique1, unique2, stringu1 FROM onek WHERE unique1 < 50 ORDER BY unique1 DESC LIMIT 20 OFFSET 39; ! eleven | unique1 | unique2 | stringu1 ! --------+---------+---------+---------- ! | 10 | 520 | KAAAAA ! | 9 | 49 | JAAAAA ! | 8 | 653 | IAAAAA ! | 7 | 647 | HAAAAA ! | 6 | 978 | GAAAAA ! | 5 | 541 | FAAAAA ! | 4 | 833 | EAAAAA ! | 3 | 431 | DAAAAA ! | 2 | 326 | CAAAAA ! | 1 | 214 | BAAAAA ! | 0 | 998 | AAAAAA ! (11 rows) ! SELECT ''::text AS ten, unique1, unique2, stringu1 FROM onek ORDER BY unique1 OFFSET 990; ! ten | unique1 | unique2 | stringu1 ! -----+---------+---------+---------- ! | 990 | 369 | CMAAAA ! | 991 | 426 | DMAAAA ! | 992 | 363 | EMAAAA ! | 993 | 661 | FMAAAA ! | 994 | 695 | GMAAAA ! | 995 | 144 | HMAAAA ! | 996 | 258 | IMAAAA ! | 997 | 21 | JMAAAA ! | 998 | 549 | KMAAAA ! | 999 | 152 | LMAAAA ! (10 rows) ! SELECT ''::text AS five, unique1, unique2, stringu1 FROM onek ORDER BY unique1 OFFSET 990 LIMIT 5; ! five | unique1 | unique2 | stringu1 ! ------+---------+---------+---------- ! | 990 | 369 | CMAAAA ! | 991 | 426 | DMAAAA ! | 992 | 363 | EMAAAA ! | 993 | 661 | FMAAAA ! | 994 | 695 | GMAAAA ! (5 rows) ! SELECT ''::text AS five, unique1, unique2, stringu1 FROM onek ORDER BY unique1 LIMIT 5 OFFSET 900; ! five | unique1 | unique2 | stringu1 ! ------+---------+---------+---------- ! | 900 | 913 | QIAAAA ! | 901 | 931 | RIAAAA ! | 902 | 702 | SIAAAA ! | 903 | 641 | TIAAAA ! | 904 | 793 | UIAAAA ! (5 rows) ! --- 5,40 ---- SELECT ''::text AS two, unique1, unique2, stringu1 FROM onek WHERE unique1 > 50 ORDER BY unique1 LIMIT 2; ! ERROR: Relation "onek" does not exist SELECT ''::text AS five, unique1, unique2, stringu1 FROM onek WHERE unique1 > 60 ORDER BY unique1 LIMIT 5; ! ERROR: Relation "onek" does not exist SELECT ''::text AS two, unique1, unique2, stringu1 FROM onek WHERE unique1 > 60 AND unique1 < 63 ORDER BY unique1 LIMIT 5; ! ERROR: Relation "onek" does not exist SELECT ''::text AS three, unique1, unique2, stringu1 FROM onek WHERE unique1 > 100 ORDER BY unique1 LIMIT 3 OFFSET 20; ! ERROR: Relation "onek" does not exist SELECT ''::text AS zero, unique1, unique2, stringu1 FROM onek WHERE unique1 < 50 ORDER BY unique1 DESC LIMIT 8 OFFSET 99; ! ERROR: Relation "onek" does not exist SELECT ''::text AS eleven, unique1, unique2, stringu1 FROM onek WHERE unique1 < 50 ORDER BY unique1 DESC LIMIT 20 OFFSET 39; ! ERROR: Relation "onek" does not exist SELECT ''::text AS ten, unique1, unique2, stringu1 FROM onek ORDER BY unique1 OFFSET 990; ! ERROR: Relation "onek" does not exist SELECT ''::text AS five, unique1, unique2, stringu1 FROM onek ORDER BY unique1 OFFSET 990 LIMIT 5; ! ERROR: Relation "onek" does not exist SELECT ''::text AS five, unique1, unique2, stringu1 FROM onek ORDER BY unique1 LIMIT 5 OFFSET 900; ! ERROR: Relation "onek" does not exist ======================================================================