Continuing my fun setting up some new Solaris buildfarm critters, I'm
seeing this failure in the dblink test, on 9.0 and 9.1:
gmake[1]: Leaving directory `/export/home/dpage/postgresql/contrib/cube'
gmake[1]: Entering directory `/export/home/dpage/postgresql/contrib/dblink'
gmake -C ../../src/test/regress pg_regress
gmake[2]: Entering directory `/export/home/dpage/postgresql/src/test/regress'
gmake[2]: `pg_regress' is up to date.
gmake[2]: Leaving directory `/export/home/dpage/postgresql/src/test/regress'
../../src/test/regress/pg_regress --inputdir=.
--psqldir=/tmp/pgsql/bin --dbname=contrib_regression dblink
(using postmaster on Unix socket, default port)
============== dropping database "contrib_regression" ==============
DROP DATABASE
============== creating database "contrib_regression" ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries ==============
test dblink ... ERROR: invalid attribute number 4
STATEMENT: SELECT dblink_build_sql_insert('foo','1 2 3 4',4,'{"0",
"a", "{a0,b0,c0}"}','{"99", "xyz", "{za0,zb0,zc0}"}');
ERROR: invalid attribute number 4
STATEMENT: SELECT dblink_build_sql_update('foo','1 2 3 4',4,'{"0",
"a", "{a0,b0,c0}"}','{"99", "xyz", "{za0,zb0,zc0}"}');
ERROR: invalid attribute number 4
STATEMENT: SELECT dblink_build_sql_delete('foo','1 2 3 4',4,'{"0",
"a", "{a0,b0,c0}"}');
ERROR: connection not available
STATEMENT: SELECT * FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[]) WHERE t.a > 7;
ERROR: relation "foobar" does not exist at character 49
STATEMENT: DECLARE rmt_foo_cursor CURSOR FOR SELECT * FROM foobar
ERROR: cursor "rmt_foobar_cursor" does not exist
STATEMENT: FETCH 4 FROM rmt_foobar_cursor
ERROR: cursor "rmt_foobar_cursor" does not exist
STATEMENT: CLOSE rmt_foobar_cursor
ERROR: cursor "rmt_foo_cursor" does not exist
STATEMENT: FETCH 4 FROM rmt_foo_cursor
ERROR: cursor "rmt_foo_cursor" does not exist
CONTEXT: Error occurred on dblink connection named "unnamed": could
not fetch from cursor.
STATEMENT: SELECT * FROM dblink_fetch('rmt_foo_cursor',4) AS t(a int, b text, c text[]);
ERROR: cursor "rmt_foo_cursor" does not exist
STATEMENT: FETCH 4 FROM rmt_foo_cursor
ERROR: connection not available
STATEMENT: SELECT * FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[]) WHERE t.a > 7;
ERROR: relation "foobar" does not exist at character 15
STATEMENT: SELECT * FROM foobar
ERROR: relation "foobar" does not exist at character 8
STATEMENT: UPDATE foobar SET f3[2] = 'b99' WHERE f1 = 11
ERROR: could not establish connection
DETAIL: missing "=" after "myconn" in connection info string
STATEMENT: SELECT * FROM dblink('myconn','SELECT * FROM foo') AS t(a int, b text, c text[]) WHERE t.a >
7;
ERROR: relation "foobar" does not exist at character 15
STATEMENT: SELECT * FROM foobar
ERROR: duplicate connection name
STATEMENT: SELECT dblink_connect('myconn','dbname=contrib_regression');
ERROR: relation "foobar" does not exist at character 49
STATEMENT: DECLARE rmt_foo_cursor CURSOR FOR SELECT * FROM foobar
ERROR: DECLARE CURSOR can only be used in transaction blocks
STATEMENT: DECLARE xact_test CURSOR FOR SELECT * FROM foo
ERROR: DECLARE CURSOR can only be used in transaction blocks
CONTEXT: Error occurred on dblink connection named "unnamed": could
not execute command.
STATEMENT: SELECT dblink_exec('myconn','DECLARE xact_test CURSOR FOR
SELECT * FROM foo');
NOTICE: there is no transaction in progress
ERROR: cursor "rmt_foobar_cursor" does not exist
STATEMENT: FETCH 4 FROM rmt_foobar_cursor
ERROR: cursor "rmt_foo_cursor" does not exist
STATEMENT: FETCH 4 FROM rmt_foo_cursor
ERROR: cursor "rmt_foo_cursor" does not exist
CONTEXT: Error occurred on dblink connection named "myconn": could
not fetch from cursor.
STATEMENT: SELECT * FROM dblink_fetch('myconn','rmt_foo_cursor',4) AS t(a int, b
text, c text[]);
ERROR: could not establish connection
DETAIL: missing "=" after "myconn" in connection info string
STATEMENT: SELECT * FROM dblink('myconn','SELECT * FROM foo') AS t(a int, b text, c text[]) WHERE t.a >
7;
ERROR: connection "myconn" not available
STATEMENT: SELECT dblink_disconnect('myconn');
ERROR: canceling statement due to user request
STATEMENT: select * from foo where f1 < 3
ERROR: password is required
DETAIL: Non-superusers must provide a password in the connection string.
STATEMENT: SELECT dblink_connect('myconn', 'fdtest');
LOG: unexpected EOF on client connection
ERROR: source row not found
STATEMENT: SELECT dblink_build_sql_insert('test_dropped', '2', 1,
ARRAY['1'::TEXT],ARRAY['2'::TEXT]);
ERROR: source row not found
STATEMENT: SELECT dblink_build_sql_update('test_dropped', '2', 1,
ARRAY['1'::TEXT],ARRAY['2'::TEXT]);
FAILED
======================1 of 1 tests failed.
======================
The differences that caused some tests to fail can be viewed in the
file "/export/home/dpage/postgresql/contrib/dblink/regression.diffs".
A copy of the test summary that you see
above is saved in the file
"/export/home/dpage/postgresql/contrib/dblink/regression.out".
gmake[1]: *** [installcheck] Error 1
Diff file:
*** /export/home/dpage/postgresql/contrib/dblink/expected/dblink.outMon Jul 19 12:00:26 2010
--- /export/home/dpage/postgresql/contrib/dblink/results/dblink.outTue Jul 20 15:16:52 2010
***************
*** 905,926 **** ADD COLUMN col4 INT NOT NULL DEFAULT 42; SELECT dblink_build_sql_insert('test_dropped', '2', 1,
ARRAY['1'::TEXT], ARRAY['2'::TEXT]);
! dblink_build_sql_insert
! ---------------------------------------------------------------------------
! INSERT INTO test_dropped(id,col2b,col3,col4) VALUES('2','113','foo','42')
! (1 row)
! SELECT dblink_build_sql_update('test_dropped', '2', 1, ARRAY['1'::TEXT],
ARRAY['2'::TEXT]);
! dblink_build_sql_update
! -------------------------------------------------------------------------------------------
! UPDATE test_dropped SET id = '2', col2b = '113', col3 = 'foo', col4
= '42' WHERE id = '2'
! (1 row)
! SELECT dblink_build_sql_delete('test_dropped', '2', 1, ARRAY['2'::TEXT]);
! dblink_build_sql_delete
! -----------------------------------------
! DELETE FROM test_dropped WHERE id = '2' (1 row)
--- 905,918 ---- ADD COLUMN col4 INT NOT NULL DEFAULT 42; SELECT dblink_build_sql_insert('test_dropped', '2', 1,
ARRAY['1'::TEXT], ARRAY['2'::TEXT]);
! ERROR: source row not found SELECT dblink_build_sql_update('test_dropped', '2', 1,
ARRAY['1'::TEXT],ARRAY['2'::TEXT]);
! ERROR: source row not found SELECT dblink_build_sql_delete('test_dropped', '2', 1,
ARRAY['2'::TEXT]);
! dblink_build_sql_delete
! --------------------------------------------
! DELETE FROM test_dropped WHERE col2b = '2' (1 row)
======================================================================
Any ideas?
--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Postgres Company