Thread: PL/Ruby
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.
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
> 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=#
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
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? >