Обсуждение: PL/Ruby

Поиск
Список
Период
Сортировка

PL/Ruby

От
Anton Nikiforov
Дата:
Dear sirs,
Does someone made PL/Ruby working on 4.7.1?
I tried alot of things. Manual install, port install and nothing happend.
Please give me the idea how to fix the problem with
plruby.c: In function `pl_tuple_put':
plruby.c:498: error: too few arguments to function `tuplestore_begin_heap'
plruby.c: In function `pl_func_handler':
plruby.c:1450: error: too few arguments to function `tuplestore_begin_heap'
*** Error code 1

Stop in /usr/ports/databases/postgresql-plruby/work/plruby-0.3.8.
*** Error code 1

Stop in /usr/ports/databases/postgresql-plruby.

Re: PL/Ruby

От
David Garamond
Дата:
Anton Nikiforov wrote:
> Dear sirs,
> Does someone made PL/Ruby working on 4.7.1?
> I tried alot of things. Manual install, port install and nothing happend.
> Please give me the idea how to fix the problem with
> plruby.c: In function `pl_tuple_put':
> plruby.c:498: error: too few arguments to function `tuplestore_begin_heap'
> plruby.c: In function `pl_func_handler':
> plruby.c:1450: error: too few arguments to function `tuplestore_begin_heap'
> *** Error code 1
>
> Stop in /usr/ports/databases/postgresql-plruby/work/plruby-0.3.8.
> *** Error code 1

I just experienced the same today. Apparently extconf.rb can't detect
7.4 correctly (at least on my Redhat 7.3) so it assumes your PG is 7.3
(and thus fails to build). Try using:

  $ ruby extconf.rb --with-pgsql-include=... --with-pgsql-version=74

That did it for me.

--
dave


Re: PL/Ruby

От
Anton Nikiforov
Дата:
> Anton Nikiforov wrote:
>
>> Dear sirs,
>> Does someone made PL/Ruby working on 4.7.1?
...skipped....
David Garamond wrote:
>
>
> I just experienced the same today. Apparently extconf.rb can't detect
> 7.4 correctly (at least on my Redhat 7.3) so it assumes your PG is 7.3
> (and thus fails to build). Try using:
>
>  $ ruby extconf.rb --with-pgsql-include=... --with-pgsql-version=74
>
> That did it for me.
>
Thanks, David, but i did try this way already and in the case i build
plruby like this i have the following in the psql:
template1=# create function plruby_call_handler () returns opaque as
'/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' language 'C';
ERROR:  could not load library
"/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so": dlopen
'/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' failed.
(/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so: Undefined symbol
"rb_hash_delete")
template1=#

Re: PL/Ruby

От
David Garamond
Дата:
Anton Nikiforov wrote:
> Thanks, David, but i did try this way already and in the case i build
> plruby like this i have the following in the psql:
> template1=# create function plruby_call_handler () returns opaque as
> '/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' language 'C';
> ERROR:  could not load library
> "/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so": dlopen
> '/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' failed.
> (/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so: Undefined symbol
> "rb_hash_delete")
> template1=#

Hm, I'm pretty clueless myself about the above, but a couple of observation:

1) the path seems strange, why does it install to
/usr/local/lib/ruby/1.6/ instead of the more usual
/usr/local/lib/ruby/site_ruby/1.6/ ...

2) what does 'ldd /usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' say?
Does it include the line similar to:

  libruby.so.1.8 => /usr/lib/libruby.so.1.8 (0x40037000)

(*.so.1.6 in your case).

3) have you tried upgrading your Ruby installation to 1.8?

--
dave


Re: PL/Ruby

От
Anton Nikiforov
Дата:
Hello David, thanks, changing to Ruby18 solved my problem after some
manual passages with woodoo around the computer :)

Best regards,
Anton Nikiforov

David Garamond wrote:
> Anton Nikiforov wrote:
>
>> Thanks, David, but i did try this way already and in the case i build
>> plruby like this i have the following in the psql:
>> template1=# create function plruby_call_handler () returns opaque as
>> '/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' language 'C';
>> ERROR:  could not load library
>> "/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so": dlopen
>> '/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' failed.
>> (/usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so: Undefined symbol
>> "rb_hash_delete")
>> template1=#
>
>
> Hm, I'm pretty clueless myself about the above, but a couple of
> observation:
>
> 1) the path seems strange, why does it install to
> /usr/local/lib/ruby/1.6/ instead of the more usual
> /usr/local/lib/ruby/site_ruby/1.6/ ...
>
> 2) what does 'ldd /usr/local/lib/ruby/1.6/i386-freebsd5/plruby.so' say?
> Does it include the line similar to:
>
>  libruby.so.1.8 => /usr/lib/libruby.so.1.8 (0x40037000)
>
> (*.so.1.6 in your case).
>
> 3) have you tried upgrading your Ruby installation to 1.8?
>