PostgreSQL 9.5 Alpha 1 Released

Started by Dave Pagealmost 11 years ago24 messageshackers
Jump to latest
#1Dave Page
dpage@pgadmin.org

The PostgreSQL Global Development Group announces that the alpha
release of PostgreSQL 9.5, the latest version of the world's leading
open source database, is available today. This release contains
previews of all of the features which will be available in the final
release of version 9.5, although some details will change before then.
Please download, test, and report what you find.

Major Features
--------------

Among new major features available for testing in this alpha are:

* Block-Range Indexes (BRIN) which enable compact indexing of
very large tables
* Large speed improvements in in-memory sorting and hashing
* Automated management of transaction log size
* INSERT ON CONFLICT UPDATE, otherwise known as "UPSERT"
* Grouping Sets, CUBE and ROLLUP analytic operations
* Row-Level Security (RLS) support
* More JSONB data manipulation functions and operators
* Added the pg_rewind tool and other high availability
improvements to replication
* Multiple enhancements to Foreign Data Wrappers, including
IMPORT FOREIGN SCHEMA
* Large increases in multi-core and large memory scalability

These features expand the capabilities of PostgreSQL, and introduce
new syntax, APIs, and management interfaces. Of course, there are
many more features detailed in the release notes, some of which may be
more exciting to you than the above. Please test every one you can.

Help Test for Bugs
------------------

As with other major releases, the improvements in PostgreSQL include
changes to large amounts of code. We count on you to test the altered
version with your workloads and testing tools in order to find bugs
and regressions before the release of PostgreSQL 9.5.0. In addition to
testing that the new features work as documented, consider testing the
following:

* Do the improvements in sorting and general performance actually increase
performance in your application?
* Do our code changes cause PostgreSQL to not function on your platform?
* We've made changes to the transaction log, including compression. Does
failover and disaster recovery still work as expected?
* Do the changes in operator precedence change the results of your queries?
* Does RLS work correctly to secure your data?

As this is an Alpha, changes to database behaviors, feature details,
and APIs are still possible. Your feedback and testing will help
determine the final tweaks on the new features, so test soon. The
quality of user testing helps determine when we can make a final
release.

Alpha and Beta Schedule
-----------------------

This is the alpha release of version 9.5, indicating that some changes
to features are still possible before release. The PostgreSQL Project
will release 9.5 beta 1 in August, and then periodically release
additional betas as required for testing until the final release in
late 2015. For more information, and suggestions on how to test the
alpha and betas, see the Beta Testing page.

Full documentation and release notes of the new version is available
online and also installs with PostgreSQL. Also see the What's New
page for details on some features.

Links
-----

* Downloads Page:
http://www.postgresql.org/download/
* Alpha Testing Information:
http://www.postgresql.org/developer/alpha
* 9.5 Alpha Release Notes:
http://www.postgresql.org/docs/devel/static/release-9-5.html
* What's New in 9.5:
https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.5

--
Dave Page
PostgreSQL Core Team
http://www.postgresql.org/

--
Sent via pgsql-announce mailing list (pgsql-announce@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-announce

#2Marco Atzeri
marco.atzeri@gmail.com
In reply to: Dave Page (#1)
PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 7/2/2015 5:16 PM, Dave Page wrote:

The PostgreSQL Global Development Group announces that the alpha
release of PostgreSQL 9.5, the latest version of the world's leading
open source database, is available today. This release contains
previews of all of the features which will be available in the final
release of version 9.5, although some details will change before then.
Please download, test, and report what you find.

Help Test for Bugs
------------------

building on cygwin and

$ perl --version

This is perl 5, version 22, subversion 0 (v5.22.0) built for
cygwin-thread-multi-64int

build fail here, anyone seeing the same on other platforms ?

make -C hstore_plperl all
make[1]: Entering directory
'/cygdrive/e/cyg_pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/build/contrib/hstore_plperl'
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -We ndif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -f
wrapv -fexcess-precision=standard -ggdb -O2
-pipe -Wimplicit-function-declaratio n
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5a
lpha1/src/pl/plperl
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore -I.
-I/pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/src/postgresql-9.5alpha1/contrib/hstore_plperl
-I../../src/i nclude
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-
9.5alpha1/src/include
-I/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE -c
-o hstore_plperl.o
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/p
ostgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c
In file included from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr

c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:6:0:
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore/hstore.h:79:0: warning:
"HS_KEY" redefined
#define HS_KEY(arr_,str_,i_) ((str_) + HSE_OFF((arr_)[2*(i_)]))
^
In file included from
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/perl.h:
3730:0,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/src/pl/plperl/plperl.h:48,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr

c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:4:
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/util.h:221:0: note:
this is t he location of the previous definition
# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
^
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -We ndif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -f
wrapv -fexcess-precision=standard -ggdb -O2
-pipe -Wimplicit-function-declaratio n
-shared -o hstore_plperl.dll -Wl,--out-implib=libhstore_plperl.a
hstore_plpe rl.o -L../../src/port
-L../../src/common -Wl,-no-undefined -Wl,--allow-multiple
-definition -Wl,--enable-auto-import -L/usr/local/lib
-Wl,--as-needed -L../.. /src/backend
-lpostgres -lpgcommon -lpgport -lintl -lssl -lcrypto -lz -lreadline
-lcrypt -lldap
hstore_plperl.o: In function `hstore_to_plperl':
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore_plperl/hstore_plperl.c:16:
undefined reference to `hstoreUpgrade '

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Michael Paquier
michael@paquier.xyz
In reply to: Marco Atzeri (#2)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On Fri, Jul 3, 2015 at 2:47 PM, Marco Atzeri <marco.atzeri@gmail.com> wrote:

On 7/2/2015 5:16 PM, Dave Page wrote:

The PostgreSQL Global Development Group announces that the alpha
release of PostgreSQL 9.5, the latest version of the world's leading
open source database, is available today. This release contains
previews of all of the features which will be available in the final
release of version 9.5, although some details will change before then.
Please download, test, and report what you find.

Help Test for Bugs
------------------

building on cygwin and

$ perl --version

This is perl 5, version 22, subversion 0 (v5.22.0) built for
cygwin-thread-multi-64int

build fail here, anyone seeing the same on other platforms ?

make -C hstore_plperl all
make[1]: Entering directory
'/cygdrive/e/cyg_pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/build/contrib/hstore_plperl'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-We ndif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -f wrapv
-fexcess-precision=standard -ggdb -O2 -pipe -Wimplicit-function-declaratio
n
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5a
lpha1/src/pl/plperl
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore -I.
-I/pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/src/postgresql-9.5alpha1/contrib/hstore_plperl
-I../../src/i nclude
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-
9.5alpha1/src/include -I/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE
-c -o hstore_plperl.o
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/p
ostgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c
In file included from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:6:0:
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore/hstore.h:79:0: warning: "HS_KEY" redefined
#define HS_KEY(arr_,str_,i_) ((str_) + HSE_OFF((arr_)[2*(i_)]))
^
In file included from
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/perl.h:
3730:0,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/src/pl/plperl/plperl.h:48,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:4:
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/util.h:221:0: note: this
is t he location of the previous definition
# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
^
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-We ndif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -f wrapv
-fexcess-precision=standard -ggdb -O2 -pipe -Wimplicit-function-declaratio
n -shared -o hstore_plperl.dll -Wl,--out-implib=libhstore_plperl.a
hstore_plpe rl.o -L../../src/port
-L../../src/common -Wl,-no-undefined -Wl,--allow-multiple
-definition -Wl,--enable-auto-import -L/usr/local/lib -Wl,--as-needed
-L../.. /src/backend -lpostgres -lpgcommon
-lpgport -lintl -lssl -lcrypto -lz -lreadline -lcrypt
-lldap
hstore_plperl.o: In function `hstore_to_plperl':
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore_plperl/hstore_plperl.c:16: undefined reference to
`hstoreUpgrade '

Hm. dangomushi is using perl 5.22 and the build does not fail:

--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Michael Paquier
michael@paquier.xyz
In reply to: Marco Atzeri (#2)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On Fri, Jul 3, 2015 at 2:47 PM, Marco Atzeri <marco.atzeri@gmail.com> wrote:

On 7/2/2015 5:16 PM, Dave Page wrote:

The PostgreSQL Global Development Group announces that the alpha
release of PostgreSQL 9.5, the latest version of the world's leading
open source database, is available today. This release contains
previews of all of the features which will be available in the final
release of version 9.5, although some details will change before then.
Please download, test, and report what you find.

Help Test for Bugs
------------------

building on cygwin and

$ perl --version

This is perl 5, version 22, subversion 0 (v5.22.0) built for
cygwin-thread-multi-64int

build fail here, anyone seeing the same on other platforms ?

make -C hstore_plperl all
make[1]: Entering directory
'/cygdrive/e/cyg_pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/build/contrib/hstore_plperl'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-We ndif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -f wrapv
-fexcess-precision=standard -ggdb -O2 -pipe -Wimplicit-function-declaratio
n
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5a
lpha1/src/pl/plperl
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore -I.
-I/pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/src/postgresql-9.5alpha1/contrib/hstore_plperl
-I../../src/i nclude
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-
9.5alpha1/src/include -I/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE
-c -o hstore_plperl.o
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/p
ostgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c
In file included from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:6:0:
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore/hstore.h:79:0: warning: "HS_KEY" redefined
#define HS_KEY(arr_,str_,i_) ((str_) + HSE_OFF((arr_)[2*(i_)]))
^
In file included from
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/perl.h:
3730:0,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/src/pl/plperl/plperl.h:48,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:4:
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/util.h:221:0: note: this
is t he location of the previous definition
# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
^
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-We ndif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -f wrapv
-fexcess-precision=standard -ggdb -O2 -pipe -Wimplicit-function-declaratio
n -shared -o hstore_plperl.dll -Wl,--out-implib=libhstore_plperl.a
hstore_plpe rl.o -L../../src/port
-L../../src/common -Wl,-no-undefined -Wl,--allow-multiple
-definition -Wl,--enable-auto-import -L/usr/local/lib -Wl,--as-needed
-L../.. /src/backend -lpostgres -lpgcommon
-lpgport -lintl -lssl -lcrypto -lz -lreadline -lcrypt
-lldap
hstore_plperl.o: In function `hstore_to_plperl':
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore_plperl/hstore_plperl.c:16: undefined reference to
`hstoreUpgrade '

So... dangomushi is able to build it at least. Here are the logs to
the last build for example:
http://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=dangomushi&amp;dt=2015-07-02%2019%3A19%3A39&amp;stg=make-contrib
What is the name of the library generated in hstore? Perhaps there is
a mismatch here.
--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Marco Atzeri
marco.atzeri@gmail.com
In reply to: Michael Paquier (#4)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 7/3/2015 8:19 AM, Michael Paquier wrote:

On Fri, Jul 3, 2015 at 2:47 PM, Marco Atzeri <marco.atzeri@gmail.com> wrote:

On 7/2/2015 5:16 PM, Dave Page wrote:

-lldap
hstore_plperl.o: In function `hstore_to_plperl':
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore_plperl/hstore_plperl.c:16: undefined reference to
`hstoreUpgrade '

So... dangomushi is able to build it at least. Here are the logs to
the last build for example:
http://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=dangomushi&amp;dt=2015-07-02%2019%3A19%3A39&amp;stg=make-contrib
What is the name of the library generated in hstore? Perhaps there is
a mismatch here.

OK thanks for the feedback.
It may be a cygwin perl specific issue.
I will investigate

Regards
Marco

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Andrew Dunstan
andrew@dunslane.net
In reply to: Marco Atzeri (#2)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/03/2015 01:47 AM, Marco Atzeri wrote:

On 7/2/2015 5:16 PM, Dave Page wrote:

The PostgreSQL Global Development Group announces that the alpha
release of PostgreSQL 9.5, the latest version of the world's leading
open source database, is available today. This release contains
previews of all of the features which will be available in the final
release of version 9.5, although some details will change before then.
Please download, test, and report what you find.

Help Test for Bugs
------------------

building on cygwin and

$ perl --version

This is perl 5, version 22, subversion 0 (v5.22.0) built for
cygwin-thread-multi-64int

build fail here, anyone seeing the same on other platforms ?

make -C hstore_plperl all
make[1]: Entering directory
'/cygdrive/e/cyg_pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/build/contrib/hstore_plperl'
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -We ndif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -f
wrapv -fexcess-precision=standard -ggdb -O2
-pipe -Wimplicit-function-declaratio n
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5a
lpha1/src/pl/plperl
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore -I.
-I/pub/devel/postgresql/prova/postgres
ql-9.5alpha1-1.i686/src/postgresql-9.5alpha1/contrib/hstore_plperl
-I../../src/i nclude
-I/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-
9.5alpha1/src/include
-I/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE -c
-o hstore_plperl.o
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/p
ostgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c
In file included from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:6:0:
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore/hstore.h:79:0: warning:
"HS_KEY" redefined
#define HS_KEY(arr_,str_,i_) ((str_) + HSE_OFF((arr_)[2*(i_)]))
^
In file included from
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/perl.h:
3730:0,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/src/pl/plperl/plperl.h:48,
from
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/sr
c/postgresql-9.5alpha1/contrib/hstore_plperl/hstore_plperl.c:4:
/usr/lib/perl5/5.22/i686-cygwin-threads-64int/CORE/util.h:221:0: note:
this is t he location of the previous
definition
# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
^
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -We ndif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -f
wrapv -fexcess-precision=standard -ggdb -O2
-pipe -Wimplicit-function-declaratio n
-shared -o hstore_plperl.dll -Wl,--out-implib=libhstore_plperl.a
hstore_plpe rl.o -L../../src/port
-L../../src/common -Wl,-no-undefined -Wl,--allow-multiple
-definition -Wl,--enable-auto-import -L/usr/local/lib
-Wl,--as-needed -L../.. /src/backend
-lpostgres -lpgcommon -lpgport -lintl -lssl -lcrypto -lz -lreadline
-lcrypt -lldap
hstore_plperl.o: In function `hstore_to_plperl':
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1
/contrib/hstore_plperl/hstore_plperl.c:16: undefined reference to
`hstoreUpgrade '

That #define clash is annoying, We should probably #undefine HS_KEY if
it's defined before including hstore.h.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Marco Atzeri
marco.atzeri@gmail.com
In reply to: Marco Atzeri (#5)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 7/3/2015 2:31 PM, Marco Atzeri wrote:

On 7/3/2015 8:19 AM, Michael Paquier wrote:

On Fri, Jul 3, 2015 at 2:47 PM, Marco Atzeri <marco.atzeri@gmail.com>
wrote:

On 7/2/2015 5:16 PM, Dave Page wrote:

-lldap
hstore_plperl.o: In function `hstore_to_plperl':
/pub/devel/postgresql/prova/postgresql-9.5alpha1-1.i686/src/postgresql-9.5alpha1

/contrib/hstore_plperl/hstore_plperl.c:16: undefined reference to
`hstoreUpgrade '

for what I see the hstore_plperl link has a double problem.

It requires a link to hstore
as it also requires a link to perl.

Attached patch for solving this and a similar issue with python.

Regards
MArco

Attachments:

postgresql-9.5alpha1-1.src.patchtext/plain; charset=UTF-8; name=postgresql-9.5alpha1-1.src.patchDownload+18-0
#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Marco Atzeri (#7)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

Marco Atzeri <marco.atzeri@gmail.com> writes:

for what I see the hstore_plperl link has a double problem.
It requires a link to hstore
as it also requires a link to perl.
Attached patch for solving this and a similar issue with python.

+ifeq ($(PORTNAME), cygwin)
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += -L../hstore -lhstore -L$(perl_archlibexp)/CORE -lperl
+endif
[ and likewise for the other contrib transform modules ]

I wondered how come we had not seen this problem in the buildfarm,
but the answer appears to be that our only working Cygwin critter
(brolga) doesn't build any of the optional PLs, so it skips these
modules altogether. Seems like we need to improve that situation.

Also, I noted that the "regular win32" path in these makefiles
says, eg,

ifeq ($(PORTNAME), win32)
# these settings are the same as for plperl
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
# This means we need an in-tree build on Windows, not a pgxs build
SHLIB_LINK += ../hstore/libhstore.a $(wildcard ../../src/pl/plperl/libperl*.a)
endif

It's not apparent to me how that works at all. It seems to specify
hard-linking a copy of hstore as well as a copy of plperl into the
shlib for hstore_plperl. Then at runtime, there will *also* be the
hstore and plperl shlibs in memory. At best that means substantial
memory bloat, but it seems likely to me that it would fail altogether,
particular for plperl which has got a substantial amount of semantically-
important static storage. Two copies of that storage will not end well.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#9Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#8)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/04/2015 11:02 AM, Tom Lane wrote:

Marco Atzeri <marco.atzeri@gmail.com> writes:

for what I see the hstore_plperl link has a double problem.
It requires a link to hstore
as it also requires a link to perl.
Attached patch for solving this and a similar issue with python.
+ifeq ($(PORTNAME), cygwin)
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += -L../hstore -lhstore -L$(perl_archlibexp)/CORE -lperl
+endif
[ and likewise for the other contrib transform modules ]

I wondered how come we had not seen this problem in the buildfarm,
but the answer appears to be that our only working Cygwin critter
(brolga) doesn't build any of the optional PLs, so it skips these
modules altogether. Seems like we need to improve that situation.

Also, I noted that the "regular win32" path in these makefiles
says, eg,

ifeq ($(PORTNAME), win32)
# these settings are the same as for plperl
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
# This means we need an in-tree build on Windows, not a pgxs build
SHLIB_LINK += ../hstore/libhstore.a $(wildcard ../../src/pl/plperl/libperl*.a)
endif

It's not apparent to me how that works at all. It seems to specify
hard-linking a copy of hstore as well as a copy of plperl into the
shlib for hstore_plperl. Then at runtime, there will *also* be the
hstore and plperl shlibs in memory. At best that means substantial
memory bloat, but it seems likely to me that it would fail altogether,
particular for plperl which has got a substantial amount of semantically-
important static storage. Two copies of that storage will not end well.

Windows finds the DLL in its path. I just tested this by removing the
intree pl DLLs after installing and then running contrib installcheck,
and it worked fine. Whether or not it actually loads the DLL twice when
it can find the intree DLL I don't know for sure, maybe someone with
more Windows-fu than me can inform our ignorance.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#10Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#8)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/04/2015 11:02 AM, Tom Lane wrote:

I wondered how come we had not seen this problem in the buildfarm,
but the answer appears to be that our only working Cygwin critter
(brolga) doesn't build any of the optional PLs, so it skips these
modules altogether. Seems like we need to improve that situation.

brolga has been on life support for quite a long time. The reason it
hasn't been retired is that for a long time I was unable to get a
buildfarm member running successfully on a more modern Cygwin. That now
appears to have resolved itself, so in a week or so I will set up a
Cygwin buildfarm member running on a modern Cygwin on Windows 8.1, and
build with perl, python, openssl, libxml and libxslt. Note that I have
only tested 32 bit Cygwin - 64-bit might well be a whole different story.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#11Marco Atzeri
marco.atzeri@gmail.com
In reply to: Andrew Dunstan (#10)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 7/5/2015 11:35 PM, Andrew Dunstan wrote:

On 07/04/2015 11:02 AM, Tom Lane wrote:

I wondered how come we had not seen this problem in the buildfarm,
but the answer appears to be that our only working Cygwin critter
(brolga) doesn't build any of the optional PLs, so it skips these
modules altogether. Seems like we need to improve that situation.

brolga has been on life support for quite a long time. The reason it
hasn't been retired is that for a long time I was unable to get a
buildfarm member running successfully on a more modern Cygwin. That now
appears to have resolved itself, so in a week or so I will set up a
Cygwin buildfarm member running on a modern Cygwin on Windows 8.1, and
build with perl, python, openssl, libxml and libxslt. Note that I have
only tested 32 bit Cygwin - 64-bit might well be a whole different story.

Hi Andrew,
I have not seen any particular difference between the two cygwin flavors
I am running both versions on my W7 64 bit.

The only trick is to have two different names for the cygserver service
to avoid collision. Those services are capable to run at the same time.

E.G. from 64 bit point of view:
$ cygrunsrv.exe -L
(cygserver)
cygserver64
(sshd)

in brackets the 32bit services.

Let me know if you need any support

cheers

andrew

Regards
Marco

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#12Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#9)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/04/2015 01:09 PM, Andrew Dunstan wrote:

On 07/04/2015 11:02 AM, Tom Lane wrote:

Marco Atzeri <marco.atzeri@gmail.com> writes:

for what I see the hstore_plperl link has a double problem.
It requires a link to hstore
as it also requires a link to perl.
Attached patch for solving this and a similar issue with python.
+ifeq ($(PORTNAME), cygwin)
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += -L../hstore -lhstore -L$(perl_archlibexp)/CORE -lperl
+endif
[ and likewise for the other contrib transform modules ]

I wondered how come we had not seen this problem in the buildfarm,
but the answer appears to be that our only working Cygwin critter
(brolga) doesn't build any of the optional PLs, so it skips these
modules altogether. Seems like we need to improve that situation.

Also, I noted that the "regular win32" path in these makefiles
says, eg,

ifeq ($(PORTNAME), win32)
# these settings are the same as for plperl
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
# This means we need an in-tree build on Windows, not a pgxs build
SHLIB_LINK += ../hstore/libhstore.a $(wildcard
../../src/pl/plperl/libperl*.a)
endif

It's not apparent to me how that works at all. It seems to specify
hard-linking a copy of hstore as well as a copy of plperl into the
shlib for hstore_plperl. Then at runtime, there will *also* be the
hstore and plperl shlibs in memory. At best that means substantial
memory bloat, but it seems likely to me that it would fail altogether,
particular for plperl which has got a substantial amount of
semantically-
important static storage. Two copies of that storage will not end well.

Windows finds the DLL in its path. I just tested this by removing the
intree pl DLLs after installing and then running contrib installcheck,
and it worked fine. Whether or not it actually loads the DLL twice
when it can find the intree DLL I don't know for sure, maybe someone
with more Windows-fu than me can inform our ignorance.

BTW, the .a files being linked to above are not like Unix .a static
archives - they are import library files, which I think they are only
used at link time, not run time. The path to the DLLs isn't being hardcoded.

Unless there is further argument I propose to commit something very like
Marco's suggestion for hstore_plperl, hstore_plpython and ltree_plpython

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#13Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#12)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

Andrew Dunstan <andrew@dunslane.net> writes:

On 07/04/2015 11:02 AM, Tom Lane wrote:

It's not apparent to me how that works at all.

BTW, the .a files being linked to above are not like Unix .a static
archives - they are import library files, which I think they are only
used at link time, not run time. The path to the DLLs isn't being hardcoded.

Ah, I see. So then what Marco is suggesting is copying a coding pattern
that does work.

Unless there is further argument I propose to commit something very like
Marco's suggestion for hstore_plperl, hstore_plpython and ltree_plpython

No objection here.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Noah Misch
noah@leadboat.com
In reply to: Andrew Dunstan (#12)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On Sun, Jul 12, 2015 at 05:02:51PM -0400, Andrew Dunstan wrote:

Marco Atzeri <marco.atzeri@gmail.com> writes:

for what I see the hstore_plperl link has a double problem.
It requires a link to hstore
as it also requires a link to perl.
Attached patch for solving this and a similar issue with python.
+ifeq ($(PORTNAME), cygwin)
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += -L../hstore -lhstore -L$(perl_archlibexp)/CORE -lperl
+endif

That's the right general strategy, agreed.

Unless there is further argument I propose to commit something very like
Marco's suggestion for hstore_plperl, hstore_plpython and ltree_plpython

Would you post the final patch for review?

Thanks,
nm

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#15Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#13)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/12/2015 05:06 PM, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

On 07/04/2015 11:02 AM, Tom Lane wrote:

It's not apparent to me how that works at all.

BTW, the .a files being linked to above are not like Unix .a static
archives - they are import library files, which I think they are only
used at link time, not run time. The path to the DLLs isn't being hardcoded.

Ah, I see. So then what Marco is suggesting is copying a coding pattern
that does work.

Unless there is further argument I propose to commit something very like
Marco's suggestion for hstore_plperl, hstore_plpython and ltree_plpython

No objection here.

OK, I tried the attached patch.

but when trying to build with python 3 I get this (no such problems with
python2, which builds and tests fine):

make -C hstore_plpython all
make[1]: Entering directory
'/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython'
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -I../../src/pl/plpython
-I/usr/include/python3.4m -I../../contrib/hstore -I. -I.
-I../../src/include -I/usr/include/libxml2 -c -o hstore_plpython.o
hstore_plpython.c
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -shared -o
hstore_plpython3.dll hstore_plpython.o -L../../src/port
-L../../src/common -Wl,--allow-multiple-definition
-Wl,--enable-auto-import -L/usr/lib -L/usr/local/lib
-Wl,--as-needed -L../../src/backend -lpostgres -L../hstore
-lhstore -L../../src/pl/plpython -lplpython3
-L/usr/lib/python3.4/config-3.4m -lpython3.4m -lpgcommon -lpgport
-lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt
hstore_plpython.o: In function `hstore_to_plpython':
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:
undefined reference to `PLyUnicode_FromStringAndSize'
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:(.text+0x99):
relocation truncated to fit: R_X86_64_PC32 against undefined symbol
`PLyUnicode_FromStringAndSize'
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:28:
undefined reference to `PLyUnicode_FromStringAndSize'
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:28:(.text+0xf1):
relocation truncated to fit: R_X86_64_PC32 against undefined symbol
`PLyUnicode_FromStringAndSize'
hstore_plpython.o: In function `plpython_to_hstore':
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:96:
undefined reference to `PLyObject_AsString'
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:96:(.text+0x2cc):
relocation truncated to fit: R_X86_64_PC32 against undefined symbol
`PLyObject_AsString'
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:84:
undefined reference to `PLyObject_AsString'
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:84:(.text+0x321):
relocation truncated to fit: R_X86_64_PC32 against undefined symbol
`PLyObject_AsString'
collect2: error: ld returned 1 exit status
../../src/Makefile.shlib:358: recipe for target
'hstore_plpython3.dll' failed
make[1]: *** [hstore_plpython3.dll] Error 1
make[1]: Leaving directory
'/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython'
Makefile:92: recipe for target 'all-hstore_plpython-recurse' failed
make: *** [all-hstore_plpython-recurse] Error 2

I'd like to get that fixed before applying anything. Marco, any ideas?

To build with python 3, set the environment like this:
PYTHON=/usr/bin/python3 - this can be done in the config file.

cheers

andrew

Attachments:

contribfix.patchtext/x-diff; name=contribfix.patchDownload+15-0
#16Marco Atzeri
marco.atzeri@gmail.com
In reply to: Andrew Dunstan (#15)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 7/13/2015 5:36 PM, Andrew Dunstan wrote:

On 07/12/2015 05:06 PM, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

On 07/04/2015 11:02 AM, Tom Lane wrote:

It's not apparent to me how that works at all.

BTW, the .a files being linked to above are not like Unix .a static
archives - they are import library files, which I think they are only
used at link time, not run time. The path to the DLLs isn't being
hardcoded.

Ah, I see. So then what Marco is suggesting is copying a coding pattern
that does work.

Unless there is further argument I propose to commit something very like
Marco's suggestion for hstore_plperl, hstore_plpython and ltree_plpython

No objection here.

OK, I tried the attached patch.

but when trying to build with python 3 I get this (no such problems with
python2, which builds and tests fine):

make -C hstore_plpython all
make[1]: Entering directory
'/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython'
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -I../../src/pl/plpython
-I/usr/include/python3.4m -I../../contrib/hstore -I. -I.
-I../../src/include -I/usr/include/libxml2 -c -o hstore_plpython.o
hstore_plpython.c
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -shared -o
hstore_plpython3.dll hstore_plpython.o -L../../src/port
-L../../src/common -Wl,--allow-multiple-definition
-Wl,--enable-auto-import -L/usr/lib -L/usr/local/lib
-Wl,--as-needed -L../../src/backend -lpostgres -L../hstore
-lhstore -L../../src/pl/plpython -lplpython3
-L/usr/lib/python3.4/config-3.4m -lpython3.4m -lpgcommon -lpgport
-lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt
hstore_plpython.o: In function `hstore_to_plpython':

/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:

undefined reference to `PLyUnicode_FromStringAndSize'

[cut]

I'd like to get that fixed before applying anything. Marco, any ideas?

To build with python 3, set the environment like this:
PYTHON=/usr/bin/python3 - this can be done in the config file.

I am only building with python2, but on cygwin
there is an additional "intl" library for python3 binding

$ python2-config --libs
-lpython2.7 -ldl

$ python3-config --libs
-lpython3.4m -lintl -ldl

cheers

andrew

Regards
Marco

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#17Andrew Dunstan
andrew@dunslane.net
In reply to: Marco Atzeri (#16)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/13/2015 11:53 AM, Marco Atzeri wrote:

On 7/13/2015 5:36 PM, Andrew Dunstan wrote:

On 07/12/2015 05:06 PM, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

On 07/04/2015 11:02 AM, Tom Lane wrote:

It's not apparent to me how that works at all.

BTW, the .a files being linked to above are not like Unix .a static
archives - they are import library files, which I think they are only
used at link time, not run time. The path to the DLLs isn't being
hardcoded.

Ah, I see. So then what Marco is suggesting is copying a coding
pattern
that does work.

Unless there is further argument I propose to commit something very
like
Marco's suggestion for hstore_plperl, hstore_plpython and
ltree_plpython

No objection here.

OK, I tried the attached patch.

but when trying to build with python 3 I get this (no such problems with
python2, which builds and tests fine):

make -C hstore_plpython all
make[1]: Entering directory
'/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython'
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -I../../src/pl/plpython
-I/usr/include/python3.4m -I../../contrib/hstore -I. -I.
-I../../src/include -I/usr/include/libxml2 -c -o hstore_plpython.o
hstore_plpython.c
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -shared -o
hstore_plpython3.dll hstore_plpython.o -L../../src/port
-L../../src/common -Wl,--allow-multiple-definition
-Wl,--enable-auto-import -L/usr/lib -L/usr/local/lib
-Wl,--as-needed -L../../src/backend -lpostgres -L../hstore
-lhstore -L../../src/pl/plpython -lplpython3
-L/usr/lib/python3.4/config-3.4m -lpython3.4m -lpgcommon -lpgport
-lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt
hstore_plpython.o: In function `hstore_to_plpython':

/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:

undefined reference to `PLyUnicode_FromStringAndSize'

[cut]

I'd like to get that fixed before applying anything. Marco, any ideas?

To build with python 3, set the environment like this:
PYTHON=/usr/bin/python3 - this can be done in the config file.

I am only building with python2, but on cygwin
there is an additional "intl" library for python3 binding

$ python2-config --libs
-lpython2.7 -ldl

$ python3-config --libs
-lpython3.4m -lintl -ldl

No this doesn't seem to be the problem. For some reason it's apparently
not finding the symbol in plpython3.dll, where it should definitely
exist, unless I'm completely off base. So I'm rather confused.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#18Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#17)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

Andrew Dunstan <andrew@dunslane.net> writes:

On 07/13/2015 11:53 AM, Marco Atzeri wrote:

On 7/13/2015 5:36 PM, Andrew Dunstan wrote:

hstore_plpython.o: In function `hstore_to_plpython':
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:
undefined reference to `PLyUnicode_FromStringAndSize'

No this doesn't seem to be the problem. For some reason it's apparently
not finding the symbol in plpython3.dll, where it should definitely
exist, unless I'm completely off base. So I'm rather confused.

Could hstore_plpython and plpython somehow have been built with different
ideas about PY_MAJOR_VERSION? PLyUnicode_FromStringAndSize is
conditionally compiled, and the reference to it from hstore_plpython
depends on a conditionally-defined macro, and this error would make plenty
of sense if those conditions somehow diverged. So I'd look for instance
at whether identical -I paths were used in both parts of the build.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#19Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#18)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

On 07/13/2015 05:18 PM, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

On 07/13/2015 11:53 AM, Marco Atzeri wrote:

On 7/13/2015 5:36 PM, Andrew Dunstan wrote:

hstore_plpython.o: In function `hstore_to_plpython':
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:
undefined reference to `PLyUnicode_FromStringAndSize'

No this doesn't seem to be the problem. For some reason it's apparently
not finding the symbol in plpython3.dll, where it should definitely
exist, unless I'm completely off base. So I'm rather confused.

Could hstore_plpython and plpython somehow have been built with different
ideas about PY_MAJOR_VERSION? PLyUnicode_FromStringAndSize is
conditionally compiled, and the reference to it from hstore_plpython
depends on a conditionally-defined macro, and this error would make plenty
of sense if those conditions somehow diverged. So I'd look for instance
at whether identical -I paths were used in both parts of the build.

Not AFAICT. Here is the contrib build:

ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -I../../src/pl/plpython
-I/usr/include/python3.4m -I../../contrib/hstore -I. -I.
-I../../src/include -I/usr/include/libxml2 -c -o hstore_plpython.o
hstore_plpython.c
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -shared -o
hstore_plpython3.dll hstore_plpython.o -L../../src/port
-L../../src/common -Wl,--allow-multiple-definition
-Wl,--enable-auto-import -L/usr/lib -L/usr/local/lib
-Wl,--as-needed -L../../src/backend -lpostgres -L../hstore
-lhstore -L../../src/pl/plpython -lplpython3
-L/usr/lib/python3.4/config-3.4m -lpython3.4m -lpgcommon -lpgport
-lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt

and here is the plpython build:

ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -I. -I.
-I/usr/include/python3.4m -I../../../src/include
-I/usr/include/libxml2 -DUSE_DL_IMPORT -c -o plpy_util.o plpy_util.c
ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -O2 -shared -o
plpython3.dll plpy_cursorobject.o plpy_elog.o plpy_exec.o
plpy_main.o plpy_planobject.o plpy_plpymodule.o plpy_procedure.o
plpy_resultobject.o plpy_spi.o plpy_subxactobject.o plpy_typeio.o
plpy_util.o -L../../../src/port -L../../../src/common
-Wl,--allow-multiple-definition -Wl,--enable-auto-import -L/usr/lib
-L/usr/local/lib -Wl,--as-needed -L/usr/lib/python3.4/config-3.4m
-lpython3.4m -lintl -ldl -L../../../src/backend -lpostgres
-lpgcommon -lpgport -lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt

The functions are in fact apparently built - the names are present in
the object file and the DLL.

cheers

andrew

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#20Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#19)
Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22

Andrew Dunstan <andrew@dunslane.net> writes:

Not AFAICT. Here is the contrib build:

Hm ... what does -DUSE_DL_IMPORT do?

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#21Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#20)
#22Michael Paquier
michael@paquier.xyz
In reply to: Andrew Dunstan (#21)
#23Andrew Dunstan
andrew@dunslane.net
In reply to: Michael Paquier (#22)
#24Noah Misch
noah@leadboat.com
In reply to: Andrew Dunstan (#19)