From: | Geoff Winkless <pgsqladmin(at)geoff(dot)dj> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | late binding of shared libs for C functions |
Date: | 2018-06-12 10:48:14 |
Message-ID: | CAEzk6fe4LT09U+aQDU9zOi-RvNScXHpnjHCqz_i_wXq+X=GV+Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi All
Is it possible to use CREATE FUNCTION to link a shared library that
doesn't yet exist? I don't think it is, but I might be missing
something.
If not, would it be something that people would be open to a patch
for? I'm thinking of e.g.
CREATE [ OR REPLACE ] FUNCTION
name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = }
default_expr ] [, ...] ] )
[ RETURNS rettype
| RETURNS TABLE ( column_name column_type [, ...] ) ]
{ LANGUAGE lang_name
| TRANSFORM { FOR TYPE type_name } [, ... ]
| WINDOW
| IMMUTABLE | STABLE | VOLATILE | [ NOT ] LEAKPROOF
| CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
| [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
| PARALLEL { UNSAFE | RESTRICTED | SAFE }
| COST execution_cost
| ROWS result_rows
| SET configuration_parameter { TO value | = value | FROM CURRENT }
| AS 'definition'
- | AS 'obj_file', 'link_symbol'
+ | AS 'obj_file', 'link_symbol' [UNBOUNDED]
} ...
[ WITH ( attribute [, ...] ) ]
(I know UNBOUNDED isn't quite the word - BINDLATE would be better -
but I figured I should try to use an existing reserved keyword...)
We run our SQL scripts before we install binaries (because our
binaries are started by the installer, so having the database in place
is a Good Thing). The binary installer includes the .so. We're now
stuck in a catch-22 where I can't run the SQL script because it
requires the .so to be in place, but I can't run the binary installer
because if I do the SQL won't be updated...
This specific problem is obviously workaround-able, but it occurred to
me that since the libraries are bound late anyway it seems like this
wouldn't cause any serious problems.
Of course chances are I've missed something...
Geoff
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2018-06-12 11:21:08 | Re: Does logical replication supports cross platform servers? |
Previous Message | Andrew Gierth | 2018-06-12 10:28:38 | Re: BUG #15237: I got "ERROR: source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" |