Re: Oracle Style packages on postgres

From: Thomas Hallgren <thhal(at)mailblocks(dot)com>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, rmm(at)sqlisor(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Oracle Style packages on postgres
Date: 2005-05-10 08:29:18
Message-ID: thhal-0ZQlcAw+dyic5y5fSB5ODlILrQhM2lI@mailblocks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:
> Josh Berkus wrote:
>
>>I think that private variables and private functions need to be part of the
>>definition.
>
>
> OK, so it seems we need:
>
> C static/private functions for schemas
> C static/private variables for schemas
>
> Are private variables implemented via the temporary per-session schema?
>
> nested schemas
>
> What does the standard say?
>
The standard says that rather then using nested schemas or packages in
conjunction with functions in order to group functions with data, use
user defined types with attributes and methods. Methods can be STATIC,
INSTANCE or CONSTRUCTOR.

AFAICS there's nothing in the standard that alters the visibility of
methods and attributes, so "private" is not covered (and don't recall
that Oracle has that kind of visibility control either). Normal access
restrictions apply of course.

I can't find any mention of schema variables. I think all life-cycle
management of data is reduced to table storage. And why not? A temporary
table can be viewed as session data right?

Using a KISS approach, the easiest thing to do that also would bring us
closer to the standard, is to extend the notion of user defined types to
include methods and conclude that storing session data in other ways
than using temporary tables should be PL specific.

Regards,
Thomas Hallgren

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Adrian Maier 2005-05-10 09:01:54 Re: Oracle Style packages on postgres
Previous Message Magnus Hagander 2005-05-10 08:18:55 Re: Case insensitive usernames