Duplicate 'SHOW FIELDS' statements when inserting data for p

I am using a HABTM relationship for my app. When inserting data for a
number of collection objects,
I am seeing a ‘SHOW FIELD’ query as each row is inserted:

0m
[4;36;1melements_tags Columns (0.020000) [0m [0;1mSHOW FIELDS
FROM elements_tags [0m
[4;35;1mSQL (0.010000) [0m [0mINSERT INTO elements_tags
(element_id, tag_id, add_flag) VALUES (3140, 2, NULL) [0m
[4;36;1melements_items Columns (0.010000) [0m [0;1mSHOW FIELDS
FROM elements_items [0m
[4;35;1mSQL (0.010000) [0m [0mINSERT INTO elements_items
(item_id, element_id, add_flag) VALUES (94, 3140, 0) [0m
[4;36;1mitems_releases Columns (0.020000) [0m [0;1mSHOW FIELDS
FROM items_releases [0m
[4;35;1mSQL (0.020000) [0m [0mINSERT INTO items_releases
(item_id, release_id) VALUES (94, 97) [0m
[4;36;1mitems_releases Columns (0.010000) [0m [0;1mSHOW FIELDS
FROM items_releases [0m
[4;35;1mSQL (0.020000) [0m [0mINSERT INTO items_releases
(item_id, release_id) VALUES (91, 97) [0m
[4;36;1mitems_releases Columns (0.020000) [0m [0;1mSHOW FIELDS
FROM items_releases [0m
[4;35;1mSQL (0.010000) [0m [0mINSERT INTO items_releases
(item_id, release_id) VALUES (92, 97) [0m
[4;

What would cause this? From what I understand, the column meta data
should be loaded only once as
each model is loaded for the first time. This happens under both
Oracle and MySQL. I am
running with my environment set to production.

Thanks in advance,
Don Mc

Any ideas,anyone?

Don.Mc wrote:

[4;35;1mSQL (0.020000) [0m [0mINSERT INTO items_releases
Oracle and MySQL. I am
running with my environment set to production.

Rails currently doesn’t cache columns of HABTM join tables.
The fix would probably only involve changing line

http://dev.rubyonrails.org/browser/trunk/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb#L84

to read @columns ||= …

Give it a try, or open a ticket.


We develop, watch us RoR, in numbers too big to ignore.

Thanks! I will give it a try.

Regards,
Don

Don.Mc wrote:

Thanks! I will give it a try.

Thinking about it, the change I suggested will only get
rid of the last two SHOW FIELDS in your post; the join table
fields will still be fetched separately for each parent object.

A proper fix would have to cache the columns inside the
association reflection.


We develop, watch us RoR, in numbers too big to ignore.

OK, will look at that. Thanks again.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs