# PlRuby(Postgres) and require

**URL:** <https://www.ruby-forum.com/t/plruby-postgres-and-require/81504>\
**Category:** Ruby\
**Created:** [January 9, 2007, 3:10pm UTC](https://www.ruby-forum.com/t/plruby-postgres-and-require/81504 "2007-01-09T15:10:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bertram\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/54ee81/32.png) [@Bertram\_S](https://www.ruby-forum.com/u/Bertram_S)\
**Post date:** [January 9, 2007, 3:10pm UTC](https://www.ruby-forum.com/t/plruby-postgres-and-require/81504/1 "2007-01-09T15:10:39Z")

</div>

Hi,

in PlRuby I am defining functions and I would like to load  
some library:

create function dummy() returns void language ‘plruby’ as $$  
require “yaml”  
$$;  
select dummy();

This yields in an “ERROR: Insecure operation - require”. At  
least the string "yaml"s tainted state is a reason for this.  
Inside the library classes will be defined (i.e. constants  
will be set) what is prohibited, too.

It is a very easy excercise to modify the PlRuby library so  
that it loads “yaml” before $SAFE is set. But then the  
system is no longer compatible to others. The question I  
would like to ask therefore is more elaborate:

What other ways are there and which is the _best_ way to  
include a library?

Thanks in advance,

Bertram

---

<div class="post-metadata">

**Author:** ![Bertram\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/54ee81/32.png) [@Bertram\_S](https://www.ruby-forum.com/u/Bertram_S)\
**Post date:** [January 9, 2007, 3:58pm UTC](https://www.ruby-forum.com/t/plruby-postgres-and-require/81504/2 "2007-01-09T15:58:50Z")

</div>

> > > > > “B” == Bertram S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

B\> This yields in an “ERROR: Insecure operation - require”. At

By default, plruby run with $SAFE = 12

B\> What other ways are there and which is the _best_ way to  
B\> include a library?

You have 2 possibilities

- compile plruby with $SAFE = 0

- look in the directories src/conversions to see what it do in some  
special cases.

Guy Decoux

---

<div class="post-metadata">

**Author:** ![Bertram\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/54ee81/32.png) [@Bertram\_S](https://www.ruby-forum.com/u/Bertram_S)\
**Post date:** [January 11, 2007, 9:12am UTC](https://www.ruby-forum.com/t/plruby-postgres-and-require/81504/3 "2007-01-11T09:12:53Z")

</div>

Hi Guy,

Am Dienstag, 09. Jan 2007, 23:58:18 +0900 schrieb ts:

> > > > > > “B” == Bertram S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:
> 
> B\> This yields in an “ERROR: Insecure operation - require”. At
> 
> By default, plruby run with $SAFE = 12

Of course, I do not want to change this. So, I will extend  
the local package.

The class I wrote was a small checksum algorithm for ‘check’  
constraints. Maybe I wil make it subject to an extension  
proposal sometimes.

Thanks.

Bertram
