Request to register new user fullname: Joel Jacobson userid: JOELJAC mail: CENSORED homepage: http://www.joelonsql.com/ why:
A few lines about myself. I'm a PostgreSQL hacker, I've been using the database almost every day during the past 10 years. I'm active in the PostgreSQL community and from time to time contribute with patches. My latest and only contribution to the mainline distribution got into the 9.1 release, http://www.postgresql.org/docs/9.1/static/release-9-1.html I've also been using Perl for just as many years. I use Perl mainly as the interface between the outside world and my applications, almost entirely written in PL/pgSQL stored procedures. I use PL/perl to do some crazy stuff, like requesting FX rates directly from within the database and to do JSON parsing/validation inside PostgreSQL. The module I wish to contribute is in a way similar to DBIx::ProcedureCall, but implemented in a different way. My module allows easy access to all your stored procedures, in a safe, transparent and convenient way. By using data in the database system table pg_catalog.pg_proc, I'm able to with 100% certainty of correctness, map a JSON-RPC call to a distinct stored procedure. This is thanks to the named arguments possible with PostgreSQL stored procedures. Functions in PostgreSQL are not required to have named arguments, and such functions are not supported because of safety reasons. The intended audience of the module are developers working on database centric systems, wanting to eliminate the need of a cumbersome middle-layer. Using this approach, you get rid of named query files altogether. To expose a new stored procedure to your webapp or other external systems, you can simply do the following if you use this module: 1. Create the function in PostgreSQL: CREATE FUNCTION add_user(username text, password text) RETURNS INTEGER AS $$ .... SQL code ... $$ LANGUAGE plpgsql SECURITY DEFINER; 2. Grant EXECUTE right's to the function for the JSON-RPC user: GRANT EXECUTE ON add_user(username text, password text) TO jsonrpcd; 3. Voila! That's all! Now you can call the function via the JSON-RPC API. No need to restart anything. The following links are only valid for PAUSE maintainers: Registration form with editing capabilities: https://pause.perl.org/pause/authenquery?ACTION=add_user&USERID=dea00000_384174feb77042c3&SUBMIT_pause99_add_user_sub=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_user&USERID=dea00000_384174feb77042c3&SUBMIT_pause99_add_user_Definitely=1