diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out index f237c43..fd61985 100644 --- a/contrib/dblink/expected/dblink.out +++ b/contrib/dblink/expected/dblink.out @@ -103,6 +103,18 @@ SELECT * FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[]) WHERE t.a > 7; ERROR: connection not available +-- The first-level connection's backend will crash on exit given OpenLDAP +-- [2.4.24, 2.4.31]. Give the postmaster time to act on the crash. +SELECT pg_sleep(1) +FROM dblink('dbname=contrib_regression', $$SELECT * FROM + dblink('service=test_ldap dbname=contrib_regression', + 'select 1') t(c int)$$) +AS t(c int); + pg_sleep +---------- + +(1 row) + -- create a persistent connection SELECT dblink_connect('dbname=contrib_regression'); dblink_connect diff --git a/contrib/dblink/sql/dblink.sql b/contrib/dblink/sql/dblink.sql index 2a10760..fa98285 100644 --- a/contrib/dblink/sql/dblink.sql +++ b/contrib/dblink/sql/dblink.sql @@ -65,6 +65,14 @@ SELECT * FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[]) WHERE t.a > 7; +-- The first-level connection's backend will crash on exit given OpenLDAP +-- [2.4.24, 2.4.31]. Give the postmaster time to act on the crash. +SELECT pg_sleep(1) +FROM dblink('dbname=contrib_regression', $$SELECT * FROM + dblink('service=test_ldap dbname=contrib_regression', + 'select 1') t(c int)$$) +AS t(c int); + -- create a persistent connection SELECT dblink_connect('dbname=contrib_regression'); diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 4b31c0a..19bfe75 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -480,7 +480,7 @@ endif pg_regress_locale_flags = $(if $(ENCODING),--encoding=$(ENCODING)) $(NOLOCALE) -pg_regress_check = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --temp-install=./tmp_check --top-builddir=$(top_builddir) $(pg_regress_locale_flags) $(EXTRA_REGRESS_OPTS) +pg_regress_check = PGSERVICEFILE=$(abs_top_srcdir)/src/test/regress/pg_service.conf $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --temp-install=./tmp_check --top-builddir=$(top_builddir) $(pg_regress_locale_flags) $(EXTRA_REGRESS_OPTS) pg_regress_installcheck = $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir='$(PSQLDIR)' $(pg_regress_locale_flags) $(EXTRA_REGRESS_OPTS) pg_regress_clean_files = results/ regression.diffs regression.out tmp_check/ log/ diff --git a/src/test/regress/pg_service.conf b/src/test/regress/pg_service.conf new file mode 100644 index 0000000..8710172 --- /dev/null +++ b/src/test/regress/pg_service.conf @@ -0,0 +1,3 @@ +# Any URL that reaches no actual server is fine. +[test_ldap] +ldap://127.0.0.1:11111/base?attribute?one?filter