Re: I propose killing PL/Tcl's "modules" infrastructure
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Cc: pgsql-hackers@postgreSQL.org, Jan Wieck <jan@wi3ck.info>
Date: 2017-02-25T18:44:48Z
Lists: pgsql-hackers
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes: > On 02/25/2017 01:14 PM, Tom Lane wrote: >> Now, we could try to fix this bug, and add the regression test coverage >> that the code clearly lacks, and upgrade the documentation about it from >> its currently very sad state. But I think the right answer is just to >> remove the feature altogether. It's evidently not being used, and it's >> kind of insecure by design, and it would not be that hard for someone >> to provide equivalent functionality entirely in userland if they really >> wanted it. > In PLv8 we added a parameter plv8.start_proc that names a parameterless > function that's executed when plv8 is first called in each session. It > can be used quite easily to implement something like a modules > infrastructure - in fact I have used it to good effect for exactly that. > Maybe something similar for pltcl would be a good thing. Yeah, the only part that's even a bit hard to replicate in userland is initializing the autoloading mechanism in each session. It would be cleaner to provide a feature similar to what you describe that could be used for that purpose as well as others. However, where does the "parameterless function" come from? Is it a regular PLv8 (or for this purpose PL/Tcl) function expected to be present in pg_proc? regards, tom lane
Commits
-
Invent start_proc parameters for PL/Tcl.
- 0d2b1f305dc7 10.0 landed
-
Remove PL/Tcl's "module" facility.
- 817f2a586342 10.0 landed
-
Remove all of the libpgtcl and pgtclsh files, including all references to
- 41fa9e9bae60 8.0.0 cited