Re: PL/pgSQL 2 - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: PL/pgSQL 2
Date
Msg-id 54053873.7040106@2ndquadrant.com
Whole thread Raw
In response to Re: PL/pgSQL 2  (Neil Tiffin <neilt@neiltiffin.com>)
Responses Re: PL/pgSQL 2
Re: PL/pgSQL 2
Re: PL/pgSQL 2
List pgsql-hackers
On 09/02/2014 08:09 AM, Neil Tiffin wrote:
> Now I could use other languages as was suggested upstream.  Lets see, I use R all the time, but R is not a first
classlanguage, not in core, and its slow. Python 3 would be acceptable to me, but its untrusted. tcl I don’t know and
don’twant to learn as no one else seems to use it (in my world anyway).  perl is the only possibility left and again,
noone in my world is using Perl and it’s not clear if there is a performance penalty.  The docs say the best language
forperformance is PL/pgSQL after pure SQL.
 

PL/Perl is plenty fast, FWIW.

I agree that it is unfortunate that we don't have an in-core trusted
"real language" PL other than PL/Perl. I am personally hoping that PL/V8
will be in a position to be adopted as "PL/JavaScript" soon, as that
would be an excellent fit with how the language fashion world is
currently moving - JSON and JavaScript abound.

More seriously, JavaScript is also a good fit for a trusted PL. I've
long favoured Lua because of the excellent embeddable runtime and
security-friendly design, but it's never really got the uptake required
to make it a serious contender.

I'd be quite happy to see PL/JavaScript in-core.

(The other obvious candidate would be PL/Ruby, but it doesn't have an
untrusted variant, and AFAIK Ruby is no better than Python when it comes
to supporting a secure runtime: hopeless.)

> That should be enough alone to suggest postgreSQL start working on a modern, in core, fast, fully supported
language.

I couldn't disagree more.

If we were to implement anything, it'd be PL/PSM
(http://en.wikipedia.org/wiki/SQL/PSM). I'm sure it's as bizarre and
quirky as anything else the SQL committee has brought forth, but it's at
least a standard(ish) language.

Creating a new language when there are already many existing contenders
is absolutely nonsensical. Other than PL/PSM the only thing that'd make
any sense would be to *pick a suitable existing language* like Lua or
JavaScript and bless it as a supported, always-available, in-core
language runtime that's compiled in by default.

> Of course PL/pgSQL works, but so did one-line 5k perl programs that nobody likes today.  Everything can be done in
assembler,but no one suggests that today.  Today, it is all about programmer productivity.  PL/pgSQL has a lot of
unnecessarystuff that sucks the life out of programmer productivity.  And this should be very much a concern of the
professionalsthat support PostgreSQL
 

PL/PgSQL is how it is in part because of PL/SQL
(http://en.wikipedia.org/wiki/PL/SQL) which in turn owes its heritage to
Ada and Pascal.

It serves an important role. I'm not going to pretend it's pretty, but

-- Craig Ringer                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services



pgsql-hackers by date:

Previous
From: Craig Ringer
Date:
Subject: Re: PL/pgSQL 2
Next
From: Sawada Masahiko
Date:
Subject: Re: add line number as prompt option to psql