mirror of
https://github.com/postgres/postgres.git
synced 2025-07-20 05:03:10 +03:00
Install server-side language PL/pgSQL by default.
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.333 2009/12/15 22:59:53 petere Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.334 2009/12/18 21:28:42 momjian Exp $ -->
|
||||||
|
|
||||||
<chapter id="installation">
|
<chapter id="installation">
|
||||||
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
||||||
@ -2266,14 +2266,14 @@ hosts=local4,bind4
|
|||||||
is <command>createlang</command> failing with unusual errors.
|
is <command>createlang</command> failing with unusual errors.
|
||||||
For example, running as the owner of the PostgreSQL installation:
|
For example, running as the owner of the PostgreSQL installation:
|
||||||
<screen>
|
<screen>
|
||||||
-bash-3.00$ createlang plpgsql template1
|
-bash-3.00$ createlang plperl template1
|
||||||
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plpgsql.so": A memory address is not in the address space for the process.
|
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": A memory address is not in the address space for the process.
|
||||||
</screen>
|
</screen>
|
||||||
Running as a non-owner in the group posessing the PostgreSQL
|
Running as a non-owner in the group posessing the PostgreSQL
|
||||||
installation:
|
installation:
|
||||||
<screen>
|
<screen>
|
||||||
-bash-3.00$ createlang plpgsql template1
|
-bash-3.00$ createlang plperl template1
|
||||||
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plpgsql.so": Bad address
|
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": Bad address
|
||||||
</screen>
|
</screen>
|
||||||
Another example is out of memory errors in the PostgreSQL server
|
Another example is out of memory errors in the PostgreSQL server
|
||||||
logs, with every memory allocation near or greater than 256 MB
|
logs, with every memory allocation near or greater than 256 MB
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
* Portions taken from FreeBSD.
|
* Portions taken from FreeBSD.
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.179 2009/12/18 18:45:50 tgl Exp $
|
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.180 2009/12/18 21:28:42 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -176,6 +176,7 @@ static void setup_dictionary(void);
|
|||||||
static void setup_privileges(void);
|
static void setup_privileges(void);
|
||||||
static void set_info_version(void);
|
static void set_info_version(void);
|
||||||
static void setup_schema(void);
|
static void setup_schema(void);
|
||||||
|
static void load_plpgsql(void);
|
||||||
static void vacuum_db(void);
|
static void vacuum_db(void);
|
||||||
static void make_template0(void);
|
static void make_template0(void);
|
||||||
static void make_postgres(void);
|
static void make_postgres(void);
|
||||||
@ -1893,6 +1894,31 @@ setup_schema(void)
|
|||||||
check_ok();
|
check_ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* load PL/pgsql server-side language
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
load_plpgsql(void)
|
||||||
|
{
|
||||||
|
PG_CMD_DECL;
|
||||||
|
|
||||||
|
fputs(_("loading PL/pgSQL server-side language ... "), stdout);
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
snprintf(cmd, sizeof(cmd),
|
||||||
|
"\"%s\" %s template1 >%s",
|
||||||
|
backend_exec, backend_options,
|
||||||
|
DEVNULL);
|
||||||
|
|
||||||
|
PG_CMD_OPEN;
|
||||||
|
|
||||||
|
PG_CMD_PUTS("CREATE LANGUAGE plpgsql;\n");
|
||||||
|
|
||||||
|
PG_CMD_CLOSE;
|
||||||
|
|
||||||
|
check_ok();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* clean everything up in template1
|
* clean everything up in template1
|
||||||
*/
|
*/
|
||||||
@ -3134,6 +3160,8 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
setup_schema();
|
setup_schema();
|
||||||
|
|
||||||
|
load_plpgsql();
|
||||||
|
|
||||||
vacuum_db();
|
vacuum_db();
|
||||||
|
|
||||||
make_template0();
|
make_template0();
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* by PostgreSQL
|
* by PostgreSQL
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.556 2009/12/14 00:39:11 itagaki Exp $
|
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.557 2009/12/18 21:28:42 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include "access/attnum.h"
|
#include "access/attnum.h"
|
||||||
#include "access/sysattr.h"
|
#include "access/sysattr.h"
|
||||||
|
#include "access/transam.h"
|
||||||
#include "catalog/pg_cast.h"
|
#include "catalog/pg_cast.h"
|
||||||
#include "catalog/pg_class.h"
|
#include "catalog/pg_class.h"
|
||||||
#include "catalog/pg_default_acl.h"
|
#include "catalog/pg_default_acl.h"
|
||||||
@ -4599,8 +4600,10 @@ getProcLangs(int *numProcLangs)
|
|||||||
"(%s lanowner) AS lanowner "
|
"(%s lanowner) AS lanowner "
|
||||||
"FROM pg_language "
|
"FROM pg_language "
|
||||||
"WHERE lanispl "
|
"WHERE lanispl "
|
||||||
|
/* do not dump initdb-installed languages */
|
||||||
|
"AND oid >= %u "
|
||||||
"ORDER BY oid",
|
"ORDER BY oid",
|
||||||
username_subquery);
|
username_subquery, FirstNormalObjectId);
|
||||||
}
|
}
|
||||||
else if (g_fout->remoteVersion >= 80300)
|
else if (g_fout->remoteVersion >= 80300)
|
||||||
{
|
{
|
||||||
@ -4610,9 +4613,10 @@ getProcLangs(int *numProcLangs)
|
|||||||
"lanvalidator, lanacl, "
|
"lanvalidator, lanacl, "
|
||||||
"(%s lanowner) AS lanowner "
|
"(%s lanowner) AS lanowner "
|
||||||
"FROM pg_language "
|
"FROM pg_language "
|
||||||
"WHERE lanispl "
|
"WHERE lanispl%s"
|
||||||
"ORDER BY oid",
|
"ORDER BY oid",
|
||||||
username_subquery);
|
username_subquery,
|
||||||
|
binary_upgrade ? "\nAND lanname != 'plpgsql'" : "");
|
||||||
}
|
}
|
||||||
else if (g_fout->remoteVersion >= 80100)
|
else if (g_fout->remoteVersion >= 80100)
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
# Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||||
# Portions Copyright (c) 1994, Regents of the University of California
|
# Portions Copyright (c) 1994, Regents of the University of California
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/test/regress/GNUmakefile,v 1.79 2009/10/26 21:11:22 petere Exp $
|
# $PostgreSQL: pgsql/src/test/regress/GNUmakefile,v 1.80 2009/12/18 21:28:42 momjian Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ tablespace-setup:
|
|||||||
## Run tests
|
## Run tests
|
||||||
##
|
##
|
||||||
|
|
||||||
pg_regress_call = ./pg_regress --inputdir=$(srcdir) --dlpath=. --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE)
|
pg_regress_call = ./pg_regress --inputdir=$(srcdir) --dlpath=. --multibyte=$(MULTIBYTE) $(NOLOCALE)
|
||||||
|
|
||||||
check: all
|
check: all
|
||||||
$(pg_regress_call) --temp-install=./tmp_check --top-builddir=$(top_builddir) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(TEMP_CONF)
|
$(pg_regress_call) --temp-install=./tmp_check --top-builddir=$(top_builddir) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(TEMP_CONF)
|
||||||
|
Reference in New Issue
Block a user