mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
In pg_upgrade, when checking for the plpython library, we must check for
"plpython2" when upgrading from pre-PG 9.1. Patch to head and 9.1. Per report from Peter.
This commit is contained in:
parent
b95aec5290
commit
cfe443ab9d
@ -228,8 +228,24 @@ check_loadable_libraries(void)
|
|||||||
char *cmd = (char *) pg_malloc(8 + 2 * llen + 1);
|
char *cmd = (char *) pg_malloc(8 + 2 * llen + 1);
|
||||||
PGresult *res;
|
PGresult *res;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In Postgres 9.0, Python 3 support was added, and to do that, a
|
||||||
|
* plpython2u language was created with library name plpython2.so
|
||||||
|
* as a symbolic link to plpython.so. In Postgres 9.1, only the
|
||||||
|
* plpython2.so library was created, and both plpythonu and
|
||||||
|
* plpython2u pointing to it. For this reason, any reference to
|
||||||
|
* library name "plpython" in an old PG <= 9.1 cluster must look
|
||||||
|
* for "plpython2" in the new cluster.
|
||||||
|
*/
|
||||||
|
if (GET_MAJOR_VERSION(old_cluster.major_version) < 901 &&
|
||||||
|
strcmp(lib, "$libdir/plpython") == 0)
|
||||||
|
{
|
||||||
|
lib = "$libdir/plpython2";
|
||||||
|
llen = strlen(lib);
|
||||||
|
}
|
||||||
|
|
||||||
strcpy(cmd, "LOAD '");
|
strcpy(cmd, "LOAD '");
|
||||||
PQescapeStringConn(conn, cmd + 6, lib, llen, NULL);
|
PQescapeStringConn(conn, cmd + strlen(cmd), lib, llen, NULL);
|
||||||
strcat(cmd, "'");
|
strcat(cmd, "'");
|
||||||
|
|
||||||
res = PQexec(conn, cmd);
|
res = PQexec(conn, cmd);
|
||||||
|
Loading…
Reference in New Issue
Block a user