--
-- contrib/sepgsql/sepgsql.sql
--
-- [Step to install]
--
-- 1. Run initdb
--    to set up a new database cluster.
--
-- 2. Edit $PGDATA/postgresql.conf
--    to add 'MODULE_PATHNAME' to shared_preload_libraries.
--
--    Example)
--        shared_preload_libraries = 'MODULE_PATHNAME'
--
-- 3. Run this script for each databases
--    This script installs corresponding functions, and assigns initial
--    security labels on target database objects.
--    It can be run both single-user mode and multi-user mode, according
--    to your preference.
--
--    Example)
--      $ for DBNAME in template0 template1 postgres;     \
--        do                                              \
--          postgres --single -F -c exit_on_error=true -D $PGDATA $DBNAME \
--            < /path/to/script/sepgsql.sql > /dev/null   \
--        done
--
-- 4. Start postmaster,
--    if you initialized the database in single-user mode.
--
LOAD 'MODULE_PATHNAME';
CREATE OR REPLACE FUNCTION pg_catalog.sepgsql_getcon() RETURNS text AS 'MODULE_PATHNAME', 'sepgsql_getcon' LANGUAGE C;
CREATE OR REPLACE FUNCTION pg_catalog.sepgsql_setcon(text) RETURNS bool AS 'MODULE_PATHNAME', 'sepgsql_setcon' LANGUAGE C;
CREATE OR REPLACE FUNCTION pg_catalog.sepgsql_mcstrans_in(text) RETURNS text AS 'MODULE_PATHNAME', 'sepgsql_mcstrans_in' LANGUAGE C STRICT;
CREATE OR REPLACE FUNCTION pg_catalog.sepgsql_mcstrans_out(text) RETURNS text AS 'MODULE_PATHNAME', 'sepgsql_mcstrans_out' LANGUAGE C STRICT;
CREATE OR REPLACE FUNCTION pg_catalog.sepgsql_restorecon(text) RETURNS bool AS 'MODULE_PATHNAME', 'sepgsql_restorecon' LANGUAGE C;
SELECT sepgsql_restorecon(NULL);
