aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-03-05 15:13:15 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2011-03-05 15:13:15 -0500
commitbfd7f8cbb2ddf8c48ac310a80d33c951087c12c4 (patch)
tree373e968b40a4cfa00829d3d536783b3f00b51dd3 /src
parentba0c93a0f46ca70cae47a8817067c1e98482979f (diff)
downloadpostgresql-bfd7f8cbb2ddf8c48ac310a80d33c951087c12c4.tar.gz
postgresql-bfd7f8cbb2ddf8c48ac310a80d33c951087c12c4.zip
Make plpythonu language use plpython2 shared library directly.
The original scheme for this was to symlink plpython.$DLSUFFIX to plpython2.$DLSUFFIX, but that doesn't work on Windows, and only accidentally failed to fail because of the way that CREATE LANGUAGE created or didn't create new C functions. My changes of yesterday exposed the weakness of that approach. To fix, get rid of the symlink and make pg_pltemplate show what's really going on.
Diffstat (limited to 'src')
-rw-r--r--src/include/catalog/catversion.h2
-rw-r--r--src/include/catalog/pg_pltemplate.h2
-rw-r--r--src/pl/plpython/Makefile8
-rw-r--r--src/tools/msvc/Mkvcbuild.pm11
4 files changed, 11 insertions, 12 deletions
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index 56fb4931ba7..5131d02732d 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -53,6 +53,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 201103042
+#define CATALOG_VERSION_NO 201103051
#endif
diff --git a/src/include/catalog/pg_pltemplate.h b/src/include/catalog/pg_pltemplate.h
index fa086525e7f..0d5c2314d18 100644
--- a/src/include/catalog/pg_pltemplate.h
+++ b/src/include/catalog/pg_pltemplate.h
@@ -72,7 +72,7 @@ DATA(insert ( "pltcl" t t "pltcl_call_handler" _null_ _null_ "$libdir/pltcl" _n
DATA(insert ( "pltclu" f f "pltclu_call_handler" _null_ _null_ "$libdir/pltcl" _null_ ));
DATA(insert ( "plperl" t t "plperl_call_handler" "plperl_inline_handler" "plperl_validator" "$libdir/plperl" _null_ ));
DATA(insert ( "plperlu" f f "plperlu_call_handler" "plperlu_inline_handler" "plperlu_validator" "$libdir/plperl" _null_ ));
-DATA(insert ( "plpythonu" f f "plpython_call_handler" "plpython_inline_handler" "plpython_validator" "$libdir/plpython" _null_ ));
+DATA(insert ( "plpythonu" f f "plpython_call_handler" "plpython_inline_handler" "plpython_validator" "$libdir/plpython2" _null_ ));
DATA(insert ( "plpython2u" f f "plpython2_call_handler" "plpython2_inline_handler" "plpython2_validator" "$libdir/plpython2" _null_ ));
DATA(insert ( "plpython3u" f f "plpython3_call_handler" "plpython3_inline_handler" "plpython3_validator" "$libdir/plpython3" _null_ ));
diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile
index 46e01951424..baf22f386f0 100644
--- a/src/pl/plpython/Makefile
+++ b/src/pl/plpython/Makefile
@@ -67,6 +67,7 @@ REGRESS_OPTS = --dbname=$(PL_TESTDB)
ifeq ($(python_majorversion),2)
REGRESS_OPTS += --load-extension=plpythonu
endif
+
REGRESS = \
plpython_schema \
plpython_populate \
@@ -88,6 +89,7 @@ REGRESS = \
plpython_composite \
plpython_subtransaction \
plpython_drop
+
# where to find psql for running the tests
PSQLDIR = $(bindir)
@@ -105,17 +107,11 @@ distprep: spiexceptions.h
install: all installdirs install-lib install-data
-ifeq ($(python_majorversion),2)
- cd '$(DESTDIR)$(pkglibdir)' && rm -f plpython$(DLSUFFIX) && $(LN_S) $(shlib) plpython$(DLSUFFIX)
-endif
installdirs: installdirs-lib
$(MKDIR_P) '$(DESTDIR)$(datadir)/extension'
uninstall: uninstall-lib uninstall-data
-ifeq ($(python_majorversion),2)
- rm -f '$(DESTDIR)$(pkglibdir)/plpython$(DLSUFFIX)'
-endif
install-data:
@for file in $(addprefix $(srcdir)/, $(DATA)); do \
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 21c11dffd76..1231f643d6a 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -172,8 +172,8 @@ sub mkvcbuild
if ($solution->{options}->{python})
{
-
- # Attempt to get python version and location. Assume python.exe in specified dir.
+ # Attempt to get python version and location.
+ # Assume python.exe in specified dir.
open(P,
$solution->{options}->{python}
. "\\python -c \"import sys;print(sys.prefix);print(str(sys.version_info[0])+str(sys.version_info[1]))\" |"
@@ -184,11 +184,14 @@ sub mkvcbuild
chomp($pyver);
close(P);
- # Sometimes (always?) if python is not present, the execution actually works, but gives no data...
+ # Sometimes (always?) if python is not present, the execution
+ # appears to work, but gives no data...
die "Failed to query python for version information\n"
if (!(defined($pyprefix) && defined($pyver)));
- my $plpython = $solution->AddProject('plpython','dll','PLs','src\pl\plpython');
+ my $pymajorver = substr($pyver, 0, 1);
+ my $plpython = $solution->AddProject('plpython' . $pymajorver, 'dll',
+ 'PLs', 'src\pl\plpython');
$plpython->AddIncludeDir($pyprefix . '\include');
$plpython->AddLibrary($pyprefix . "\\Libs\\python$pyver.lib");
$plpython->AddReference($postgres);