The downside is pretty large: it doesn't work if I define a composite
PK. If you read my posting above you'll see that I get a Postgres
adapter error on the RETURNING statement. That and the fact that this
is a logging table (in a legacy DB) with no PK(s). The columns are:
doc_id (not unique), user_id (not unique), date viewed (not unique),
and the combination is not unique.  That's it! No PK. It's not my
insistence, but rather the nature of a logging table. A row in this
table is never updated, just INSERTs and SELECTs. I cannot add a
row_id column to this table as that would break many COBOL programs.
So that is life in the real world. By claiming the table has a single
PK via "set_primary_keys" (note it's plural) it works.

Jeff

On Oct 21, 12:50 am, Marnen Laibow-Koser <rails-mailing-l...@andreas-
s.net> wrote:
> JeffV wrote:
> > doc_id is not a PK. An accurate model of the table would be:
> > set_primary_key nil
>
> Again: determine a suitable unique index (potentially composite, say,
> doc_id and something else) and declare that as your primary key in the
> DB.  This will have many advantages and virtually no downside AFAIK.
>
> > But the PG postgres adapter is unhappy with that because it's
> > generating something like:
> >   INSERT into the_table VALUES (val1, val2...) RETURNING pk
> > when pk is nil the postgres adapter is unhappy.
> > For some reason the composite_primary_keys plugin fixes the problem
> > (as only a single PK is specified).
> > To me the problem is the PG adapter. I don't know why it uses
> > RETURNING in its INSERT statement.
>
> No, the problem is in your insistence that you don't want a PK.  Really,
> any unique index will do the trick.  Stop fighting Rails and good DB
> design and declare one. :)
>
>
>
> > Jeff
>
> Best,
> --
> Marnen Laibow-Koserhttp://www.marnen.org
> [email protected]
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to