[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

postgres-pr

Ernest Ellingson

1/6/2005 12:36:00 AM

I've installed the windows version of ruby-1.8.2 with the latest
one-click installer. I used gem to install postgres-pr-0.3.2. However,
I can't seem to get any of the examples to run. I'm getting a

uninitialized constant StartupMessage (NameError) in client.rb

The require statements are:
$LOAD_PATH.unshift "../lib"
requie 'rubygems'
require 'postgres-pr/message'
require 'socket'

The first two lines of code are

s = UNIXSocket.new(ARGV.shift || "/tmp/.s.PGSQL.5432")

msg = StartupMessage.new(196608, "user" => "mneumann", "database" =>
"mneumann")

I can't use a UNIXSocket because I'm not running Cygwin. However, I
don't see any requirements in postgres-pr/message.rb for (s).
Am I missing something?

Does someone have any experience using postgres-pr in the dbi. If so,
How does one connect to a server?

Ernie
12 Answers

Michael Neumann

1/6/2005 11:43:00 AM

0

Ernest Ellingson wrote:
> I've installed the windows version of ruby-1.8.2 with the latest
> one-click installer. I used gem to install postgres-pr-0.3.2. However,
> I can't seem to get any of the examples to run. I'm getting a
>
> uninitialized constant StartupMessage (NameError) in client.rb


I fixed that. put a "include PostgresPR" after the requires and it
works. Try postgres-pr-0.3.3.

> The require statements are:
> $LOAD_PATH.unshift "../lib"
> requie 'rubygems'
> require 'postgres-pr/message'
> require 'socket'
>
> The first two lines of code are
>
> s = UNIXSocket.new(ARGV.shift || "/tmp/.s.PGSQL.5432")
>
> msg = StartupMessage.new(196608, "user" => "mneumann", "database" =>
> "mneumann")
>
> I can't use a UNIXSocket because I'm not running Cygwin. However, I
> don't see any requirements in postgres-pr/message.rb for (s).
> Am I missing something?

I don't understand your question... Maybe... The UNIXSocket is only used
in the example, you can use postgres-pr/connection.rb without a
UNIXSocket, with a TCPSocket. That's no problem.

> Does someone have any experience using postgres-pr in the dbi. If so,
> How does one connect to a server?

Just use DBD::Pg. I've not tried it. But I know that it works with
ActiveRecord and Og.

Regards,

Michael



Ernest Ellingson

1/6/2005 6:45:00 PM

0

Michael Neumann wrote:
> Ernest Ellingson wrote:
>
>> I've installed the windows version of ruby-1.8.2 with the latest
>> one-click installer. I used gem to install postgres-pr-0.3.2.
>> However, I can't seem to get any of the examples to run. I'm
>> getting a
>>
>> uninitialized constant StartupMessage (NameError) in client.rb
>
>
>
> I fixed that. put a "include PostgresPR" after the requires and it
> works. Try postgres-pr-0.3.3.
>
>> The require statements are:
>> $LOAD_PATH.unshift "../lib"
>> requie 'rubygems'
>> require 'postgres-pr/message'
>> require 'socket'
>>
>> The first two lines of code are
>>
>> s = UNIXSocket.new(ARGV.shift || "/tmp/.s.PGSQL.5432")
>>
>> msg = StartupMessage.new(196608, "user" => "mneumann", "database" =>
>> "mneumann")
>>
>> I can't use a UNIXSocket because I'm not running Cygwin. However, I
>> don't see any requirements in postgres-pr/message.rb for (s).
>> Am I missing something?
>
>
> I don't understand your question... Maybe... The UNIXSocket is only used
> in the example, you can use postgres-pr/connection.rb without a
> UNIXSocket, with a TCPSocket. That's no problem.
>
>> Does someone have any experience using postgres-pr in the dbi. If so,
>> How does one connect to a server?
>
>
> Just use DBD::Pg. I've not tried it. But I know that it works with
> ActiveRecord and Og.
>
> Regards,
>
> Michael
>
>
>
Thanks Michael, I'll give it a whirl and let you know how things worked out.
Ernie

Ernest Ellingson

1/6/2005 9:24:00 PM

0

Ernest Ellingson wrote:
> Michael Neumann wrote:
>
>> Ernest Ellingson wrote:
>>
>>> I've installed the windows version of ruby-1.8.2 with the latest
>>> one-click installer. I used gem to install postgres-pr-0.3.2.
>>> However, I can't seem to get any of the examples to run. I'm
>>> getting a
>>>
>>> uninitialized constant StartupMessage (NameError) in client.rb
>>
>>
>>
>>
>> I fixed that. put a "include PostgresPR" after the requires and it
>> works. Try postgres-pr-0.3.3.
>>
>>> The require statements are:
>>> $LOAD_PATH.unshift "../lib"
>>> requie 'rubygems'
>>> require 'postgres-pr/message'
>>> require 'socket'
>>>
>>> The first two lines of code are
>>>
>>> s = UNIXSocket.new(ARGV.shift || "/tmp/.s.PGSQL.5432")
>>>
>>> msg = StartupMessage.new(196608, "user" => "mneumann", "database" =>
>>> "mneumann")
>>>
>>> I can't use a UNIXSocket because I'm not running Cygwin. However, I
>>> don't see any requirements in postgres-pr/message.rb for (s).
>>> Am I missing something?
>>
>>
>>
>> I don't understand your question... Maybe... The UNIXSocket is only
>> used in the example, you can use postgres-pr/connection.rb without a
>> UNIXSocket, with a TCPSocket. That's no problem.
>>
>>> Does someone have any experience using postgres-pr in the dbi. If so,
>>> How does one connect to a server?
>>
>>
>>
>> Just use DBD::Pg. I've not tried it. But I know that it works with
>> ActiveRecord and Og.
>>
>> Regards,
>>
>> Michael
>>
>>
>>
> Thanks Michael, I'll give it a whirl and let you know how things worked
> out.
> Ernie
Something's still fowled up. I installed postgres-pr.0.3.3 using gem
install. I uninstalled postgres-pr-0.3.2 using gem.
There is no Pg driver in the DBD directory.

dbi was installed with the one click windows installer not with gem.
Should I just install postgres-pr.0.3.3 without using gem?
Should I install the dbi using gem?
How do I go about getting the Pg driver installed in the DBD directory.
If I'm running a script from some other directory other than the example
directory, what requires do I need? Up to now I've only had to require
'dbi' when using ODBC.

I ran the client.rb program after changing the socket to a TCPsocket.
My system started thrashing. Page files jumped to 1.24GB that's right
GIGA BYTES. Thrashed for a while and then just hung there. PF dropped
back to 144MB. What's that all about?

Running Ruby 1.8.2-14 on WindowsXP service pack 2.

Ernie

Michael Neumann

1/7/2005 3:25:00 AM

0

Ernest Ellingson wrote:
> Ernest Ellingson wrote:
>
>> Michael Neumann wrote:
>>
>>> Ernest Ellingson wrote:
>>>
>>>> I've installed the windows version of ruby-1.8.2 with the latest
>>>> one-click installer. I used gem to install postgres-pr-0.3.2.
>>>> However, I can't seem to get any of the examples to run. I'm
>>>> getting a
>>>>
>>>> uninitialized constant StartupMessage (NameError) in client.rb
>>>
>>>
>>>
>>>
>>>
>>> I fixed that. put a "include PostgresPR" after the requires and it
>>> works. Try postgres-pr-0.3.3.
>>>
>>>> The require statements are:
>>>> $LOAD_PATH.unshift "../lib"
>>>> requie 'rubygems'
>>>> require 'postgres-pr/message'
>>>> require 'socket'
>>>>
>>>> The first two lines of code are
>>>>
>>>> s = UNIXSocket.new(ARGV.shift || "/tmp/.s.PGSQL.5432")
>>>>
>>>> msg = StartupMessage.new(196608, "user" => "mneumann", "database" =>
>>>> "mneumann")
>>>>
>>>> I can't use a UNIXSocket because I'm not running Cygwin. However, I
>>>> don't see any requirements in postgres-pr/message.rb for (s).
>>>> Am I missing something?
>>>
>>>
>>>
>>>
>>> I don't understand your question... Maybe... The UNIXSocket is only
>>> used in the example, you can use postgres-pr/connection.rb without a
>>> UNIXSocket, with a TCPSocket. That's no problem.
>>>
>>>> Does someone have any experience using postgres-pr in the dbi. If so,
>>>> How does one connect to a server?
>>>
>>>
>>>
>>>
>>> Just use DBD::Pg. I've not tried it. But I know that it works with
>>> ActiveRecord and Og.
>>>
>>> Regards,
>>>
>>> Michael
>>>
>>>
>>>
>> Thanks Michael, I'll give it a whirl and let you know how things
>> worked out.
>> Ernie
>
> Something's still fowled up. I installed postgres-pr.0.3.3 using gem
> install. I uninstalled postgres-pr-0.3.2 using gem.
> There is no Pg driver in the DBD directory.
>
> dbi was installed with the one click windows installer not with gem.
> Should I just install postgres-pr.0.3.3 without using gem?
> Should I install the dbi using gem?

DBI via gem is not (yet) available.
And, postgres-pr is NOT a DBD! It has a compatibility layer to
postgres.so (the C-interface to Postgres), but that's not 100%
compatible as my focus was on getting ActiveRecord and Og working with
it. I've not tested postgres-pr with DBD::Pg (DBI). It might fail!

> How do I go about getting the Pg driver installed in the DBD directory.

You should not remove the Pg.rb driver!

> If I'm running a script from some other directory other than the example
> directory, what requires do I need? Up to now I've only had to require
> 'dbi' when using ODBC.

Again, postgres-pr has nothing to do with DBI. If it would be 100%
compatible to postgres.so, you should be able to just use the DBD::Pg
with a simple require 'dbi' and then DBI.connect("dbi:g:...").

> I ran the client.rb program after changing the socket to a TCPsocket. My
> system started thrashing. Page files jumped to 1.24GB that's right GIGA
> BYTES. Thrashed for a while and then just hung there. PF dropped back
> to 144MB. What's that all about?

I don't know. It works fine on my machine. Would you try
test_connection.rb? But note, that you should change the connection
parameters and make sure, you don't destroy data in your database!
Does it work?

Regards,

Michael


Thursday

1/7/2005 3:37:00 AM

0

Michael Neumann wrote:
> And, postgres-pr is NOT a DBD! It has a compatibility layer to
> postgres.so (the C-interface to Postgres), but that's not 100%
> compatible as my focus was on getting ActiveRecord and Og working with
> it. I've not tested postgres-pr with DBD::Pg (DBI). It might fail!
>

I think some code was added to ActiveRecord 1.3 which might break
compatibility with postgres-pr. Not sure if this is an issue with the
latest postgres-pr but it was in earlier versions.

Ernest Ellingson

1/7/2005 4:51:00 AM

0

Michael Neumann wrote:
> Ernest Ellingson wrote:
>
>> Ernest Ellingson wrote:
>>
>>> Michael Neumann wrote:
>>>
>>>> Ernest Ellingson wrote:
>>>>
>>>>> I've installed the windows version of ruby-1.8.2 with the latest
>>>>> one-click installer. I used gem to install postgres-pr-0.3.2.
>>>>> However, I can't seem to get any of the examples to run. I'm
>>>>> getting a
>>>>>
>>>>> uninitialized constant StartupMessage (NameError) in client.rb
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I fixed that. put a "include PostgresPR" after the requires and it
>>>> works. Try postgres-pr-0.3.3.
>>>>
>>>>> The require statements are:
>>>>> $LOAD_PATH.unshift "../lib"
>>>>> requie 'rubygems'
>>>>> require 'postgres-pr/message'
>>>>> require 'socket'
>>>>>
>>>>> The first two lines of code are
>>>>>
>>>>> s = UNIXSocket.new(ARGV.shift || "/tmp/.s.PGSQL.5432")
>>>>>
>>>>> msg = StartupMessage.new(196608, "user" => "mneumann", "database"
>>>>> => "mneumann")
>>>>>
>>>>> I can't use a UNIXSocket because I'm not running Cygwin. However, I
>>>>> don't see any requirements in postgres-pr/message.rb for (s).
>>>>> Am I missing something?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I don't understand your question... Maybe... The UNIXSocket is only
>>>> used in the example, you can use postgres-pr/connection.rb without a
>>>> UNIXSocket, with a TCPSocket. That's no problem.
>>>>
>>>>> Does someone have any experience using postgres-pr in the dbi. If so,
>>>>> How does one connect to a server?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Just use DBD::Pg. I've not tried it. But I know that it works with
>>>> ActiveRecord and Og.
>>>>
>>>> Regards,
>>>>
>>>> Michael
>>>>
>>>>
>>>>
>>> Thanks Michael, I'll give it a whirl and let you know how things
>>> worked out.
>>> Ernie
>>
>>
>> Something's still fowled up. I installed postgres-pr.0.3.3 using gem
>> install. I uninstalled postgres-pr-0.3.2 using gem.
>> There is no Pg driver in the DBD directory.
>>
>> dbi was installed with the one click windows installer not with gem.
>> Should I just install postgres-pr.0.3.3 without using gem?
>> Should I install the dbi using gem?
>
>
> DBI via gem is not (yet) available.
> And, postgres-pr is NOT a DBD! It has a compatibility layer to
> postgres.so (the C-interface to Postgres), but that's not 100%
> compatible as my focus was on getting ActiveRecord and Og working with
> it. I've not tested postgres-pr with DBD::Pg (DBI). It might fail!
>
>> How do I go about getting the Pg driver installed in the DBD directory.
>
>
> You should not remove the Pg.rb driver!
>
>> If I'm running a script from some other directory other than the
>> example directory, what requires do I need? Up to now I've only had
>> to require 'dbi' when using ODBC.
>
>
> Again, postgres-pr has nothing to do with DBI. If it would be 100%
> compatible to postgres.so, you should be able to just use the DBD::Pg
> with a simple require 'dbi' and then DBI.connect("dbi:g:...").
>
>> I ran the client.rb program after changing the socket to a TCPsocket.
>> My system started thrashing. Page files jumped to 1.24GB that's right
>> GIGA BYTES. Thrashed for a while and then just hung there. PF dropped
>> back to 144MB. What's that all about?
>
>
> I don't know. It works fine on my machine. Would you try
> test_connection.rb? But note, that you should change the connection
> parameters and make sure, you don't destroy data in your database!
> Does it work?
>
> Regards,
>
> Michael
>
>
Thanks Michael
I'm still not sure about Pg.rb. Where is it? It's not in the DBI or
the DBD directory. Does it exist? How do I get it?

As for postgres-pr I tried the test_connection.rb code changed the uri
to 'tcp://ipaddress:5432' and the other parameters to appropriate
values. Apparently a connection is being made but the same blow up in
page files occurs 1.25 GB's. The program finally errors out with this
trace. I should mention the database is on another machine running RH
linux 9 and postgresql 7.4.

c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/buffer.rb:64:in
`read': failed to allocate memory (NoMemoryError)
from
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/buffer.rb:64:in
`copy_from_stream'
from
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/postgres-pr/message.rb:41:in
`read'
from
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/postgres-pr/connection.rb:27:in
`initialize'
from
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/postgres-pr/connection.rb:26:in
`loop'
from
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/postgres-pr/connection.rb:26:in
`initialize'
from C:/RubyScripts/postgresql/test_connection.rb:4:in `new'
from C:/RubyScripts/postgresql/test_connection.rb:4

Thanks again
Ernie

Michael Neumann

1/7/2005 1:16:00 PM

0

Ernest Ellingson wrote:
> Thanks Michael
> I'm still not sure about Pg.rb. Where is it? It's not in the DBI or
> the DBD directory. Does it exist? How do I get it?

Ah, okay. I think it's not bundled with the Windows-Installer, as you
need the postgres.so or postgres-pr libraries. And postgres.so is/was
not available for Windows AFAIK.

You can download it from here:

http://ntecs.de/viewcvs/viewcvs/dbd-pg/trunk/src/?roo...

Just put the Pg.rb into the DBD/Pg directory (create the Pg directory).

> As for postgres-pr I tried the test_connection.rb code changed the uri
> to 'tcp://ipaddress:5432' and the other parameters to appropriate
> values. Apparently a connection is being made but the same blow up in
> page files occurs 1.25 GB's. The program finally errors out with this
> trace. I should mention the database is on another machine running RH
> linux 9 and postgresql 7.4.

Hm, very strange. Does using TCPSockets generally work on your platform
without problems?

> c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/buffer.rb:64:in
> `read': failed to allocate memory (NoMemoryError)

I should include some debug code. It might be, that there's a negative
buffer-length which gets interpreted as an unsigned value... or
something like this. You're on a 32-bit machine, right?

Regards,

Michael


Ernest Ellingson

1/7/2005 1:27:00 PM

0

Michael Neumann wrote:
> Ernest Ellingson wrote:
>
>> Thanks Michael
>> I'm still not sure about Pg.rb. Where is it? It's not in the DBI or
>> the DBD directory. Does it exist? How do I get it?
>
>
> Ah, okay. I think it's not bundled with the Windows-Installer, as you
> need the postgres.so or postgres-pr libraries. And postgres.so is/was
> not available for Windows AFAIK.
>
> You can download it from here:
>
> http://ntecs.de/viewcvs/viewcvs/dbd-pg/trunk/src/?roo...
>
> Just put the Pg.rb into the DBD/Pg directory (create the Pg directory).
>
>> As for postgres-pr I tried the test_connection.rb code changed the uri
>> to 'tcp://ipaddress:5432' and the other parameters to appropriate
>> values. Apparently a connection is being made but the same blow up in
>> page files occurs 1.25 GB's. The program finally errors out with this
>> trace. I should mention the database is on another machine running RH
>> linux 9 and postgresql 7.4.
>
>
> Hm, very strange. Does using TCPSockets generally work on your platform
> without problems?
>
>> c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/buffer.rb:64:in
>> `read': failed to allocate memory (NoMemoryError)
>
>
> I should include some debug code. It might be, that there's a negative
> buffer-length which gets interpreted as an unsigned value... or
> something like this. You're on a 32-bit machine, right?
>
> Regards,
>
> Michael
>
>
I haven't had a problem with smtp or gets or posts with httpAccess2 so I
believe that TCPsockets are working fine. I am running a 32 bit machine
WindowsXP svc Pack 2.

Thanks
Ernie

Michael Neumann

1/8/2005 12:12:00 AM

0

Ernest Ellingson wrote:
> Michael Neumann wrote:
>
>> Ernest Ellingson wrote:
>>
>>> Thanks Michael
>>> I'm still not sure about Pg.rb. Where is it? It's not in the DBI or
>>> the DBD directory. Does it exist? How do I get it?
>>
>>
>>
>> Ah, okay. I think it's not bundled with the Windows-Installer, as you
>> need the postgres.so or postgres-pr libraries. And postgres.so is/was
>> not available for Windows AFAIK.
>>
>> You can download it from here:
>>
>> http://ntecs.de/viewcvs/viewcvs/dbd-pg/trunk/src/?roo...
>>
>> Just put the Pg.rb into the DBD/Pg directory (create the Pg directory).
>>
>>> As for postgres-pr I tried the test_connection.rb code changed the
>>> uri to 'tcp://ipaddress:5432' and the other parameters to appropriate
>>> values. Apparently a connection is being made but the same blow up
>>> in page files occurs 1.25 GB's. The program finally errors out with
>>> this trace. I should mention the database is on another machine
>>> running RH linux 9 and postgresql 7.4.
>>
>>
>>
>> Hm, very strange. Does using TCPSockets generally work on your
>> platform without problems?
>>
>>> c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/buffer.rb:64:in
>>> `read': failed to allocate memory (NoMemoryError)
>>
>>
>>
>> I should include some debug code. It might be, that there's a negative
>> buffer-length which gets interpreted as an unsigned value... or
>> something like this. You're on a 32-bit machine, right?
>>
>> Regards,
>>
>> Michael
>>
>>
> I haven't had a problem with smtp or gets or posts with httpAccess2 so I
> believe that TCPsockets are working fine. I am running a 32 bit machine
> WindowsXP svc Pack 2.

Could you patch message.rb of postgres-pr with the following patch, and
tell me what you get on STDOUT:

Index: message.rb
===================================================================
--- message.rb (revision 475)
+++ message.rb (working copy)
@@ -32,6 +32,8 @@
type = stream.readbytes(1).unpack('C').first unless startup
length = stream.readbytes(4).unpack('N').first # FIXME: length
should be signed, not unsigned

+ p length
+
raise ParseError unless length >= 4

# initialize buffer

Regards,

Michael


Michael Neumann

1/8/2005 2:05:00 AM

0

Thursday wrote:
> Michael Neumann wrote:
>
>> And, postgres-pr is NOT a DBD! It has a compatibility layer to
>> postgres.so (the C-interface to Postgres), but that's not 100%
>> compatible as my focus was on getting ActiveRecord and Og working with
>> it. I've not tested postgres-pr with DBD::Pg (DBI). It might fail!
>>
>
> I think some code was added to ActiveRecord 1.3 which might break
> compatibility with postgres-pr. Not sure if this is an issue with the
> latest postgres-pr but it was in earlier versions.

Not sure either. Please report if there are problems.

Regards,

Michael