Please review #8049 (PostgreSQL support)

Right now I'm working on implementing prepared statements in Ruby on Rails, but the PostgreSQL unit tests fail, even before I've written any code, because the PostgreSQL adapter has many problems. Can someone please review the patch at http://dev.rubyonrails.org/ticket/8049 ? This fixes a lot of PostgreSQL problems. It has been open for 2 months but no sign of being reviewed or accepted.

Thanks.

It has been open for 2 months but no sign of being reviewed or accepted.

Yeah, can somebody please commit this. Without it using PostgreSQL 8.2 is really painfull.

Jonathan

Rails continuous build at http://cruisecontrolrb.thoughtworks.com/builds/RubyOnRails runs ActiveRecord unit tests with Postgres 8.2.3, among other things. And it usually passes. Which directly contradicts your above statement.

So I wonder if it points to some error or omission in my build setup. Can you, please, clarify the problem?

Your friendly build monkey, Alex Verkhovsky

For me, Postgres only fails on schema creation/ownership tests (test_schema_postgres.rb) because the user I’m testing with doesn’t have superuser permissions (but, IMO, it has all necessary permissions on the test database). The setup (CREATE SCHEMA statement) fails, so naturally all subsequent tests fail also.

I'm running Ubuntu Linux 7.04 (Feisty) with PostgreSQL 8.2.4. I checked out Rails edge (unmodified) from SVN. When I run 'rake test_postgresql' in the activerecord directory, I get a ton of errors. You can read them at: http://izumi.plan99.net/ruby-postgresql-errors.txt

They're mostly related to string escaping. Because of these problems I cannot use binary columns in Ruby on Rails project, which uses PostgreSQL.

All the bitching about string escaping is at the warning level, corresponding tests actually pass.

Errors all stem from this: ERROR: permission denied to create role: CREATE ROLE rails_pg_schema_user1

Correction: you get a ton of warnings. There are no failures, except the schema/roles one I described in my previous post. These are all because of the first “ERROR: permission denied to create role”.

But I agree that the Postgres adapter for Rails should use the database in a way that doesn’t spawn these warnings.

Yes. But I have made sure the test user has create role privileges. It doesn’t help.

Hm, you are correct. After fixing the permissions the unit tests pass, though they still give the string warnings. Thanks.

You need to give it *all* privileges, including superuser.