Packages in oracle Style

Started by Coutinhoover 17 years ago10 messages
#1Coutinho
coutinho@mondriantecnologia.com

I want to start working to implement packages in PostgreSQL and would
like to learn how to change the tables of the catalogue.

I want to useit pg_namespace table to create a "sub-schema" that will be used to
group the functions like in Oracle

--
Nabucodonosor Coutinho

#2Zdenek Kotala
Zdenek.Kotala@Sun.COM
In reply to: Coutinho (#1)
Re: Packages in oracle Style

Coutinho napsal(a):

I want to start working to implement packages in PostgreSQL and would
like to learn how to change the tables of the catalogue.

I want to useit pg_namespace table to create a "sub-schema" that will be used to
group the functions like in Oracle

Please, look into conference archive. This was discussed several times and IIRC
every time it has been rejected.

Zdenek

#3Coutinho
coutinho@mondriantecnologia.com
In reply to: Zdenek Kotala (#2)
Re: Packages in oracle Style

this is listed on TODO:
http://www.postgresql.org/docs/faqs.TODO.html

Add features of Oracle-style packages (Pavel)

A package would be a schema with session-local variables,
public/private functions, and initialization functions. It is also
possible to implement these capabilities in any schema and not use a
separate "packages" syntax at all.

Indeed not seek approval but help.
I am implementing this now to my use and for those who have interest,
perhaps in the form of a patch or contrib.

#4Zdenek Kotala
Zdenek.Kotala@Sun.COM
In reply to: Coutinho (#3)
Re: Packages in oracle Style

Coutinho napsal(a):

this is listed on TODO:
http://www.postgresql.org/docs/faqs.TODO.html

Add features of Oracle-style packages (Pavel)

I see. Sorry I overlooked it. I think Pavel Stehule will help you. He has idea
how to do it.

Zdenek

#5Pavel Stehule
pavel.stehule@gmail.com
In reply to: Zdenek Kotala (#4)
Re: Packages in oracle Style

2008/5/27 Zdenek Kotala <Zdenek.Kotala@sun.com>:

Coutinho napsal(a):

this is listed on TODO:
http://www.postgresql.org/docs/faqs.TODO.html

Add features of Oracle-style packages (Pavel)

My last idea was only global variables for plpgsql. It needs hack of
plpgsql :(. But it's can be simple work.

Pavel

Show quoted text

I see. Sorry I overlooked it. I think Pavel Stehule will help you. He has
idea how to do it.

Zdenek

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Noname
coutinho@mondriantecnologia.com
In reply to: Pavel Stehule (#5)
Re: Packages in oracle Style

I have implemented a solution for global variables implemented in plpython and I need implement this in c :)

My implementation:

select set_session('USER','coutinho');
select set_session('EMAIL','coutinho@mondriantecnologia.com');

select get_session('USER');

coutinho

select get_session('EMAIL');

coutinho@mondriantecnologia.com

On Wed, 28 May 2008 22:13:31 +0200, "Pavel Stehule" <pavel.stehule@gmail.com> wrote:

2008/5/27 Zdenek Kotala <Zdenek.Kotala@sun.com>:

Coutinho napsal(a):

this is listed on TODO:
http://www.postgresql.org/docs/faqs.TODO.html

Add features of Oracle-style packages (Pavel)

My last idea was only global variables for plpgsql. It needs hack of
plpgsql :(. But it's can be simple work.

Pavel

I see. Sorry I overlooked it. I think Pavel Stehule will help you. He

has

idea how to do it.

Zdenek

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Joe Conway
mail@joeconway.com
In reply to: Noname (#6)
Re: Packages in oracle Style

coutinho@mondriantecnologia.com wrote:

I have implemented a solution for global variables implemented in plpython and I need implement this in c :)

The below listed tarball is out of date at this point, but I have
updated code laying around if someone really wanted it:
http://www.joeconway.com/sessfunc.tar.gz
I've used variations of this over the years on several projects.

I've also (mis)used custom configs, e.g. in a plpgsql function:

8<----------------------------
EXECUTE 'set myvars.var1 to ''' || p_var1 || '''';
8<----------------------------

and in your "get session var" C function:

8<----------------------------
#define GET_SESSVAR_BY_NAME(SESS_VAR_NAME) \
do { \
SESS_VAR_NAME = GetConfigOptionByName("myvars." #SESS_VAR_NAME, \
NULL); \
if (!SESS_VAR_NAME) \
elog(ERROR, "Missing session variable: " #SESS_VAR_NAME); \
} while (0)

char *var1 = GET_SESSVAR_BY_NAME(var1);
8<----------------------------

Joe

#8Pavel Stehule
pavel.stehule@gmail.com
In reply to: Noname (#6)
Re: Packages in oracle Style

Hello

2008/5/31 <coutinho@mondriantecnologia.com>:

I have implemented a solution for global variables implemented in plpython and I need implement this in c :)

My implementation:

select set_session('USER','coutinho');
select set_session('EMAIL','coutinho@mondriantecnologia.com');

select get_session('USER');

coutinho

select get_session('EMAIL');

coutinho@mondriantecnologia.com

this is too simple :( data are stored in text format, not in native Datum format

Regards
Pavel Stehule

Show quoted text

On Wed, 28 May 2008 22:13:31 +0200, "Pavel Stehule" <pavel.stehule@gmail.com> wrote:

2008/5/27 Zdenek Kotala <Zdenek.Kotala@sun.com>:

Coutinho napsal(a):

this is listed on TODO:
http://www.postgresql.org/docs/faqs.TODO.html

Add features of Oracle-style packages (Pavel)

My last idea was only global variables for plpgsql. It needs hack of
plpgsql :(. But it's can be simple work.

Pavel

I see. Sorry I overlooked it. I think Pavel Stehule will help you. He

has

idea how to do it.

Zdenek

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#9Harald Armin Massa
haraldarminmassa@gmail.com
In reply to: Joe Conway (#7)
Re: Packages in oracle Style

Joe and all,

The below listed tarball is out of date at this point, but I have updated
code laying around if someone really wanted it:
http://www.joeconway.com/sessfunc.tar.gz
I've used variations of this over the years on several projects.

is someone able and willing to provide this tarball compiled to a
PostgreSQL-8.3.1 usable win32-dll ?

ATM I am using session variables in pure PL/SQL via temp tables. ..:)

Harald

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pidgeon
-
EuroPython 2008 will take place in Vilnius, Lithuania - Stay tuned!

#10Pavel Stehule
pavel.stehule@gmail.com
In reply to: Harald Armin Massa (#9)
Re: Packages in oracle Style

2008/6/1 Harald Armin Massa <haraldarminmassa@gmail.com>:

Joe and all,

The below listed tarball is out of date at this point, but I have updated
code laying around if someone really wanted it:
http://www.joeconway.com/sessfunc.tar.gz
I've used variations of this over the years on several projects.

is someone able and willing to provide this tarball compiled to a
PostgreSQL-8.3.1 usable win32-dll ?

ATM I am using session variables in pure PL/SQL via temp tables. ..:)

It should by contrib module

Pavel

Show quoted text

Harald

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pidgeon
-
EuroPython 2008 will take place in Vilnius, Lithuania - Stay tuned!