473,386 Members | 1,706 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Experience with PL/xx?

Hi,

does anybody out there have experience with the several PL's which are
available for PostgreSQL? I am currently evaluating several databases
(commercial as well as free & open source) for a new project and would
just like to hear some feedback.

PL/Java seems to be developed by a fairly small team - no updates on
their website since December 2002 (and even what's available on this
web site is not very encouraging to use PL/Java on a production
system). Does anybody use PL/Java?

What about PL/Python or PL/Ruby? Any experience with these two
implementations on a production system? Are there any PostgreSQL
specifics or limitations? Significant differences between these two
languages?

Any input will be apprecíated,

Klaus
Nov 12 '05 #1
3 2318
On 27 Oct 2003 00:21:07 -0800
pu*****************@ibeq.com (Klaus P. Pieper) wrote:

What about PL/Python or PL/Ruby? Any experience with these two
implementations on a production system? Are there any PostgreSQL
specifics or limitations? Significant differences between these two
languages?


PL/PGSQL is probably the most popular one. I use it quite a bit and it works like a champ. It is quite comprable to Oracle's PL/SQL (hence the name)

Check it out in the docs on http://www.postgresql.org/

--
Jeff Trout <je**@jefftrout.com>
http://www.jefftrout.com/
http://www.stuarthamm.net/

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Nov 12 '05 #2
On 27 Oct 2003, Klaus P. Pieper wrote:
Hi,

does anybody out there have experience with the several PL's which are
available for PostgreSQL? I am currently evaluating several databases
(commercial as well as free & open source) for a new project and would
just like to hear some feedback.

PL/Java seems to be developed by a fairly small team - no updates on
their website since December 2002 (and even what's available on this
web site is not very encouraging to use PL/Java on a production
system). Does anybody use PL/Java?

What about PL/Python or PL/Ruby? Any experience with these two
implementations on a production system? Are there any PostgreSQL
specifics or limitations? Significant differences between these two
languages?


The two or three "heavy lifters" of the pl/xx set are plSQL, which is just
SQL wrapped in a function, and fairly limited, PL/pgSQL, which is
Postgresql's implementation that is fairly similar to Oracle's plsql, and
C functions. Generally, functions written in C are the fastest, but also
require the most care, as improperly written ones can cause individual
backends to crash.

pl/pgsql is a good compromise between these two and probably has the most
stored procs written in it.

pl/python just lost its trusted status, so that might be an issue until
they get rexec fixed.

I haven't used plruby.

pl/R is a nice choice if you're doing statistical analysis

pl/tcl has gotten good marks

pl/php seems to be maturing quickly, and will likely get a good shaking
down in the next 6 months

I'm not sure what the status of pl/J is, but I can't imagine a pl needing
a lot of maintenance once the bugs are worked out, as it's mostly just
glue code. I.e. the real updates come in Java and Postgresql
individually, not in the interface layer.

If you're looking to get started, plpgsql is a very good starting point.

If you need a trusted language (i.e. sandboxed) plpgsql, pl/J, pl/php,
pl/perl, and pl/tcl are good choices to explore, as they can all run in a
trusted version.

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Nov 12 '05 #3
On Mon, 2003-10-27 at 15:17, scott.marlowe wrote:
On 27 Oct 2003, Klaus P. Pieper wrote:
Hi,

does anybody out there have experience with the several PL's which are
available for PostgreSQL? I am currently evaluating several databases
(commercial as well as free & open source) for a new project and would
just like to hear some feedback.

PL/Java seems to be developed by a fairly small team - no updates on
their website since December 2002 (and even what's available on this
web site is not very encouraging to use PL/Java on a production
system). Does anybody use PL/Java?

What about PL/Python or PL/Ruby? Any experience with these two
implementations on a production system? Are there any PostgreSQL
specifics or limitations? Significant differences between these two
languages?


The two or three "heavy lifters" of the pl/xx set are plSQL, which is just
SQL wrapped in a function, and fairly limited, PL/pgSQL, which is
Postgresql's implementation that is fairly similar to Oracle's plsql, and
C functions. Generally, functions written in C are the fastest, but also
require the most care, as improperly written ones can cause individual
backends to crash.

pl/pgsql is a good compromise between these two and probably has the most
stored procs written in it.

pl/python just lost its trusted status, so that might be an issue until
they get rexec fixed.

I haven't used plruby.

pl/R is a nice choice if you're doing statistical analysis

pl/tcl has gotten good marks

pl/php seems to be maturing quickly, and will likely get a good shaking
down in the next 6 months

I'm not sure what the status of pl/J is, but I can't imagine a pl needing
a lot of maintenance once the bugs are worked out, as it's mostly just
glue code. I.e. the real updates come in Java and Postgresql
individually, not in the interface layer.

If you're looking to get started, plpgsql is a very good starting point.

If you need a trusted language (i.e. sandboxed) plpgsql, pl/J, pl/php,
pl/perl, and pl/tcl are good choices to explore, as they can all run in a
trusted version.


I'm not as bullish on all of these as scott, heres my break down of
things I'd want to look at in a pl language (in no particular order):

1. trusted/untrusted status
this controls how what privileges the pllang will have, like opening
sockets, reading the filesystem, etc... there are pros and cons for each
type, but for maximum flexibility you want both.

2. trigger support
this means you can write triggers directly in the pllang in question.
this can be worked around but it's a sign of maturity for the pllang
imho

3. able to query against the database
some pllangs can not execute queries against the database, but are
limited to only being able to perform functions "native" to the lang.

4. is it part of the main distribution
this one is really unfair to some of the languages, like plr which has a
great maintainer in Joe Conway, but if a language isn't in the core
distribution, it's likely not getting banged on like the ones that are
in core. unless i was really familiar with the base language in question
I'd stick to what's in the main packages.

none of these are deal killers depending on what your use is for them,
but its a good way to size up the different choices. in my production
system i would say my current breakdown is 25% sql funcs, 70% plpgsql,
and 5% pltcl, with a couple of plc's from contrib I have modified. I've
also used plpython, plperl, and plphp at least somewhat in passing, but
none of those offer me things I don't already have in my main 3 (and
note I've never written a tcl program in my life)

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postgresql.org

Nov 12 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

10
by: scrunchy2k | last post by:
Hi, I have noticed that some PHP based webpages have a similar look. For instance, text within non-overlapping, non-touching rectangles which are nicely laid out on a page. Is there some...
3
by: John J. Walton | last post by:
Hi ! I wonder if anyone can give me some advice. I have been in IT for 30 yrs. Most of the time I have coded in Cobol on medium size systems (Data General, now a dinosaur). For the past 2 years...
3
by: Pramod Ramachandran | last post by:
Hi group, I am a software professional working at Trivandrum, south India, with around 4 years mixed experience in J2EE development, Crystal Reports, Customer support, Oracle DBA activities and...
10
by: jrefactors | last post by:
In the interview, when interviewers ask how much experience you have in C/C++. Do they mean work experience in C/C++, or programming experience in C/C++? Do they consider college projects as...
0
by: Francesco Di Cerbo | last post by:
Hello, we are calling for Experience Report for OSS 2005, The First International Conference on Open Source Systems. It's a chance for OSS developers to meet industrial and government needs, and...
0
by: Frank | last post by:
Hi All, I have a client, based in Dublin/Ireland is urgently look for a number of Snr Lead Developers to work as part of a team developing cutting-edge Windows TV solutions. There is also more...
40
by: Visionary | last post by:
Greetings, I'm the webmaster/team lead at avlabsdesign.com, and I'm currently on the hunt for a PHP programmer to join the team. I've been spreading myself quite thin lately, and aside from that...
0
by: David_Parkes | last post by:
A global leader in the digital media space based in the Dallas/Fort Worth Metroplex – is currently re-architecting its core product line and is doing so on the back of Microsoft .NET 3.0/3.5 and...
0
by: mjames777 | last post by:
any one can help me to get correct with min query to get All matching experience in all the category mentioned in condition. If my table structure like... Field Type...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.