how can i add my own procedural language?

Started by Sibtay Abbasabout 21 years ago3 messages
#1Sibtay Abbas
sibtay_abbas@yahoo.com

hi

is "Procedural language handler function" the
interface for adding your own procedural languages to
postgres?

I ve read the documentation but i am not able to
understand where do we deal with stuff like parse
trees, query trees, plan trees etc.

Ofcourse any procedural language should pass through
all the steps ie parsing, planning/optimization and
execution.

so where do we define these steps? and what interface
is provided by postgresql?

thank you

__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo

#2Thomas Hallgren
thhal@mailblocks.com
In reply to: Sibtay Abbas (#1)
Re: how can i add my own procedural language?

Sibtay,

hi

is "Procedural language handler function" the
interface for adding your own procedural languages to
postgres?

I ve read the documentation but i am not able to
understand where do we deal with stuff like parse
trees, query trees, plan trees etc.

Ofcourse any procedural language should pass through
all the steps ie parsing, planning/optimization and
execution.

so where do we define these steps? and what interface
is provided by postgresql?

You normally don't deal with parsing, planning etc. at all from within a
language handler.

If you want to know how to issue a SQL query from within a function, a
good start is to look at the Server Programming Interface (SPI) . The
functions described there are normally the ones your language handler
will use to access the database from within the function.

http://www.postgresql.org/docs/7.4/interactive/spi.html

Take a look at the code for the languages that are bundled with
PostgreSQL. In the source tree, you will find them under src/pl. The
pltcl.c was very helpful to me when I first did this.

Other links where you will find source that might be helpful:

http://pgfoundry.org/projects/plperlng
http://gborg.postgresql.org/project/pljava

Regards,
Thomas Hallgren

#3Doug McNaught
doug@mcnaught.org
In reply to: Thomas Hallgren (#2)
Re: how can i add my own procedural language?

Thomas Hallgren <thhal@mailblocks.com> writes:

Sibtay,

You normally don't deal with parsing, planning etc. at all from within
a language handler.

Unless you're implementing a language from scratch rather than linking
in an existing interpreter. In which case, the PL/pgSQL source is a
good example.

-Doug