Re: Pl/Python -- current maintainer?

Поиск
Список
Период
Сортировка
От James William Pye
Тема Re: Pl/Python -- current maintainer?
Дата
Msg-id 20060225202134.GB27635@lit.jwp.name
обсуждение исходный текст
Ответ на Re: Pl/Python -- current maintainer?  (Tino Wildenhain <tino@wildenhain.de>)
Ответы Re: Pl/Python -- current maintainer?  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: Pl/Python -- current maintainer?  (James William Pye <pgsql@jwp.name>)
Список pgsql-hackers
On Sat, Feb 25, 2006 at 10:09:52AM +0100, Tino Wildenhain wrote:
> And with even more love the restricted python from zope could
> be ported so there could be a pl/python again :-)
> 
> Ok, just haluzinating ;)

Not necessarily. ;)

From what I have seen of zope's restricted python, it does, or can, force its
restrictions by checking bytecode. I imagine a simple PL sitting on top of the
untrusted varient that merely implements a custom validator that checks the
bytecode produced by the untrusted PL's validator. The language handler would
remain the same:

<Create untrusted plpy...>

CREATE FUNCTION zope_restrict(oid) RETURNS VOID LANGUAGE python AS
$$
getcode = Postgres.CachedQuery("SELECT probin FROM pg_proc WHERE oid = $1")
getlangval = Postgres.CachedQuery("""SELECT lanvalidator FROM pg_language WHERE    oid = (SELECT prolang FROM pg_proc
WHEREoid = $1)
 
""")

langvaloid = getlangval(self.function.procid)
langval = Postgres.Function(langvaloid)

# produce the function's bytecode for checking
langval(args[0])

# get the function's newly created bytecode
code = getcode(args[0]).next()[0]

#
# XXX: do the zope restriction stuff, raise exception if necessary
#

Postgres.NOTICE(repr(code))
$$;

CREATE TRUSTED LANGUAGE plpyr HANDLER python.handler VALIDATOR zope_restrict;

[This almost works in plpy head, but I think I just found a bug ;]
-- 
Regards, James William Pye


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Clark C. Evans"
Дата:
Сообщение: Re: constraints and sql92 information_schema compliance
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: constraints and sql92 information_schema compliance