Update sslinfo extension for parallel query.

All functions provided by this extension are PARALLEL RESTRICTED,
because they provide information about the connection state.  Parallel
workers don't have this information and therefore these functions
can't be executed in a worker (but they can be present in a query some
other part of which uses parallelism).

Andreas Karlsson
This commit is contained in:
Robert Haas 2016-06-14 14:52:55 -04:00
parent 2910fc8239
commit 6b7d11ffda
4 changed files with 28 additions and 13 deletions

View File

@ -4,7 +4,7 @@ MODULE_big = sslinfo
OBJS = sslinfo.o $(WIN32RES)
EXTENSION = sslinfo
DATA = sslinfo--1.0--1.1.sql sslinfo--1.1.sql \
DATA = sslinfo--1.2.sql sslinfo--1.1--1.2.sql sslinfo--1.0--1.1.sql \
sslinfo--unpackaged--1.0.sql
PGFILEDESC = "sslinfo - information about client SSL certificate"

View File

@ -0,0 +1,15 @@
/* contrib/sslinfo/sslinfo--1.1--1.2.sql */
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION sslinfo UPDATE TO '1.2'" to load this file. \quit
ALTER FUNCTION ssl_client_serial() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_is_used() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_version() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_cipher() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_client_cert_present() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_client_dn_field(text) PARALLEL RESTRICTED;
ALTER FUNCTION ssl_issuer_field(text) PARALLEL RESTRICTED;
ALTER FUNCTION ssl_client_dn() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_issuer_dn() PARALLEL RESTRICTED;
ALTER FUNCTION ssl_extension_info() PARALLEL RESTRICTED;

View File

@ -1,43 +1,43 @@
/* contrib/sslinfo/sslinfo--1.1.sql */
/* contrib/sslinfo/sslinfo--1.2.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION sslinfo" to load this file. \quit
CREATE FUNCTION ssl_client_serial() RETURNS numeric
AS 'MODULE_PATHNAME', 'ssl_client_serial'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_is_used() RETURNS boolean
AS 'MODULE_PATHNAME', 'ssl_is_used'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_version() RETURNS text
AS 'MODULE_PATHNAME', 'ssl_version'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_cipher() RETURNS text
AS 'MODULE_PATHNAME', 'ssl_cipher'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_client_cert_present() RETURNS boolean
AS 'MODULE_PATHNAME', 'ssl_client_cert_present'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_client_dn_field(text) RETURNS text
AS 'MODULE_PATHNAME', 'ssl_client_dn_field'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_issuer_field(text) RETURNS text
AS 'MODULE_PATHNAME', 'ssl_issuer_field'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_client_dn() RETURNS text
AS 'MODULE_PATHNAME', 'ssl_client_dn'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION ssl_issuer_dn() RETURNS text
AS 'MODULE_PATHNAME', 'ssl_issuer_dn'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;
CREATE FUNCTION
ssl_extension_info(OUT name text,
@ -45,4 +45,4 @@ ssl_extension_info(OUT name text,
OUT critical boolean
) RETURNS SETOF record
AS 'MODULE_PATHNAME', 'ssl_extension_info'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL RESTRICTED;

View File

@ -1,5 +1,5 @@
# sslinfo extension
comment = 'information about SSL certificates'
default_version = '1.1'
default_version = '1.2'
module_pathname = '$libdir/sslinfo'
relocatable = true