Please review #8049 (PostgreSQL support)

11 views
Skip to first unread message

Hongli Lai

unread,
May 14, 2007, 9:16:13 AM5/14/07
to Ruby on Rails: Core
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.

Jonathan Weiss

unread,
May 14, 2007, 10:45:01 AM5/14/07
to rubyonra...@googlegroups.com
> 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

--
Jonathan Weiss
http://blog.innerewut.de

Alexey Verkhovsky

unread,
May 14, 2007, 4:23:51 PM5/14/07
to rubyonra...@googlegroups.com
On 5/14/07, Hongli Lai <hong...@gmail.com> wrote:
> 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

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

Mislav Marohnić

unread,
May 14, 2007, 5:00:03 PM5/14/07
to rubyonra...@googlegroups.com
On 5/14/07, Alexey Verkhovsky <alexey.v...@gmail.com> wrote:

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

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.

Hongli Lai

unread,
May 14, 2007, 5:59:07 PM5/14/07
to Ruby on Rails: Core
On May 14, 10:23 pm, "Alexey Verkhovsky" <alexey.verkhov...@gmail.com>
wrote:
> On 5/14/07, Hongli Lai <hongli...@gmail.com> wrote:
> Rails continuous build athttp://cruisecontrolrb.thoughtworks.com/builds/RubyOnRailsruns

> 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

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.

Alexey Verkhovsky

unread,
May 14, 2007, 6:13:34 PM5/14/07
to rubyonra...@googlegroups.com
On 5/14/07, Hongli Lai <hong...@gmail.com> wrote:
> 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

--
Alex Verkhovsky

Mislav Marohnić

unread,
May 14, 2007, 6:18:31 PM5/14/07
to rubyonra...@googlegroups.com
On 5/14/07, Hongli Lai <hong...@gmail.com> wrote:

When I run 'rake
test_postgresql' in the activerecord directory, I get a ton of errors.

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.


Mislav Marohnić

unread,
May 14, 2007, 6:20:45 PM5/14/07
to rubyonra...@googlegroups.com
On 5/15/07, Alexey Verkhovsky <alexey.v...@gmail.com> wrote:

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

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

Hongli Lai

unread,
May 14, 2007, 6:34:08 PM5/14/07
to Ruby on Rails: Core
On May 15, 12:13 am, "Alexey Verkhovsky" <alexey.verkhov...@gmail.com>

wrote:
> On 5/14/07, Hongli Lai <hongli...@gmail.com> wrote:
> 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

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

Hongli Lai

unread,
May 14, 2007, 6:36:00 PM5/14/07
to Ruby on Rails: Core
On May 15, 12:20 am, "Mislav Marohnić" <mislav.maroh...@gmail.com>
wrote:

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

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

Reply all
Reply to author
Forward
0 new messages