Jeremy Kemper
1d9905a67f
r1307@iwill: jeremy | 2005-06-13 19:05:00 -0700
...
Ticket 1312 - Malformed habtm finder sql
r1308@iwill: jeremy | 2005-06-13 19:58:48 -0700
Add a habtm with an unquoted condition to Project.
r1309@iwill: jeremy | 2005-06-13 19:59:46 -0700
Space out habtm finder conditions.
r1310@iwill: jeremy | 2005-06-13 20:00:16 -0700
Test habtm.find with quoted and unquoted conditions.
r1311@iwill: jeremy | 2005-06-13 20:00:25 -0700
Update changelog
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1414 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-13 21:51:43 +00:00
Jamis Buck
37a370d8d4
Be sure to use the @finder_sql in the has_many association's #find method, even if explicit conditions have not been given.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1412 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-13 12:03:33 +00:00
Jeremy Kemper
76e4c1a558
r1294@iwill: jeremy | 2005-06-13 02:17:42 -0700
...
Ticket #1281
r1295@iwill: jeremy | 2005-06-13 02:50:50 -0700
Apply patch, tweak, and test.
r1296@iwill: jeremy | 2005-06-13 02:51:04 -0700
Changelog entry.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1410 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-13 04:42:36 +00:00
David Heinemeier Hansson
7411af95db
Replace the in-memory object, but dont orphan the existing one
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1393 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-07 12:48:37 +00:00
David Heinemeier Hansson
2bdaff4a4e
Added a second parameter to the build and create method for has_one that controls whether the existing association should be replaced (which means nullifying its foreign key as well). By default this is true, but false can be passed to prevent it.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1392 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-06 21:10:59 +00:00
David Heinemeier Hansson
190e04645b
Fixed that :delete_sql in has_and_belongs_to_many associations couldn't access record properties #1299 [Rick Olson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1313 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-19 17:07:56 +00:00
David Heinemeier Hansson
56412f4441
Optimize counting of has_many associations by setting the association to empty if the count is 0
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1235 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-23 18:18:18 +00:00
David Heinemeier Hansson
6f34400086
Fixed order of loading in eager associations
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1229 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-19 16:32:57 +00:00
David Heinemeier Hansson
cdf88b7b04
Fixed stray comma when using eager loading and ordering together from has_many associations #1143
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1220 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-19 05:24:50 +00:00
David Heinemeier Hansson
49d0f0cb66
Speeded up eager loading a whole bunch
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1212 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-18 18:49:34 +00:00
David Heinemeier Hansson
c1611a703c
Updated documentation here and there
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1210 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-18 15:31:20 +00:00
David Heinemeier Hansson
5e9dc49744
Dont prefix on updates and deletes, only selects
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1177 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-17 06:32:49 +00:00
David Heinemeier Hansson
9dd8d3d3e4
Honor the order in the new finder
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1167 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-15 08:32:56 +00:00
David Heinemeier Hansson
cef09015c7
Order by is no longer a guarentee
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1164 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-14 04:07:26 +00:00
David Heinemeier Hansson
ff1db4de5f
Qualify the ids used such that eager loading can avoid ambigious keys
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1163 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-13 18:12:59 +00:00
David Heinemeier Hansson
71bdf13b60
Removed the default order by id on has_and_belongs_to_many queries as it could kill performance on large sets (you can still specify by hand with :order)
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1162 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-13 17:51:43 +00:00
David Heinemeier Hansson
3b9e90a4da
Moved build_association and create_association for has_one and belongs_to out of deprecation as they work when the association is nil unlike association.build and association.create, which require the association to be already in place #864
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1146 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-12 05:34:10 +00:00
David Heinemeier Hansson
b59619600f
No conditions relevant here
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1145 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-11 15:13:43 +00:00
David Heinemeier Hansson
edcaa2e5f7
More eager fixes
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1084 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-03 18:21:20 +00:00
David Heinemeier Hansson
f8783abf0c
Made eager loading work even more
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1083 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-03 17:50:11 +00:00
David Heinemeier Hansson
abc895b828
Added new Base.find API and deprecated find_all, find_first. Added preliminary support for eager loading of associations
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1077 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-03 10:52:05 +00:00
David Heinemeier Hansson
1ba1779754
Added that model.items.delete(child) will delete the child, not just set the foreign key to nil, if the child is dependent on the model #978 [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1064 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-02 08:52:51 +00:00
David Heinemeier Hansson
715715aed4
Dont load the target before the proxy has had a chance to answer the respond_to? -- this would cause an .empty? query to trigger loading the entire collection if the proxy had already been initialized
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1036 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-29 12:31:05 +00:00
David Heinemeier Hansson
7267db5890
Added destruction of dependent objects in has_one associations when a new assignment happens #742 [mindel]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@843 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 13:40:21 +00:00
David Heinemeier Hansson
5e44eda787
Fixed that HasManyAssociation#count was using :finder_sql rather than :counter_sql if it was available #445 [Scott Barron]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@834 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 11:53:49 +00:00
David Heinemeier Hansson
6650da43c8
Fixed that association#count would produce invalid sql when called sequentialy #659 [kanis@comcard.de]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@813 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-28 09:07:03 +00:00
David Heinemeier Hansson
e9426d2264
Optimized the SQL used to generate has_and_belongs_to_many queries by listing the join table first #693 [yerejm]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@741 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-22 13:58:22 +00:00
David Heinemeier Hansson
098fa94356
Fixed documentation snafus #575 , #576 , #577 , #585
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@525 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 14:15:53 +00:00
David Heinemeier Hansson
efa81dad51
Added the option of supplying an array of ids and attributes to Base#update, so that multiple records can be updated at once (inspired by #526/Duane Johnson). Added the option of supplying an array of attributes to Base#create, so that multiple records can be created at once. Added that Base#delete and Base#destroy both can take an array of ids to delete/destroy #336 . Added that has_many association build and create methods can take arrays of record data like Base#create and Base#build to build/create multiple records at once.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@504 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 12:45:01 +00:00
David Heinemeier Hansson
b29c01ea89
Added that has_and_belongs_to_many associations with additional attributes also can be created between unsaved objects and only committed to the database when Base#save is called on the associator #524 [Eric Anderson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@484 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:39:23 +00:00
David Heinemeier Hansson
4ddbe0ac44
Fixed that find_all would produce invalid sql when called sequentialy #490 [Scott Baron]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@464 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-20 14:35:00 +00:00
David Heinemeier Hansson
bce0e14930
Fixed that the belongs_to and has_one proxy would fail a test like 'if project.manager' -- this unfortunately also means that you can't call methods like project.manager.build unless there already is a manager on the project #492 [Tim Bates]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@456 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-18 11:07:03 +00:00
David Heinemeier Hansson
44ac6046c1
Only remember that an association was loaded if it was found
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@435 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-17 00:44:22 +00:00
David Heinemeier Hansson
1ae630a404
belongs_to association should always honor a present foreign key and condition interpolation should also be possible on belongs_to
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@433 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-17 00:30:53 +00:00
David Heinemeier Hansson
823554eafe
Added support for associating unsaved objects #402 [Tim Bates]
...
Added replace to associations, so you can do project.manager.replace(new_manager) or project.milestones.replace(new_milestones) #402 [Tim Bates]
Added build and create methods to has_one and belongs_to associations, so you can now do project.manager.build(attributes) #402 [Tim Bates]
Fixed that Base#== wouldn't work for multiple references to the same unsaved object #402 [Tim Bates]
Added that if a before_* callback returns false, all the later callbacks and the associated action are cancelled. If an after_* callback returns false, all the later callbacks are cancelled. Callbacks are generally run in the order they are defined, with the exception of callbacks defined as methods on the model, which are called last. #402 [Tim Bates]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@417 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-15 17:45:16 +00:00
David Heinemeier Hansson
8d5d7161eb
Remove length alias of size
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@396 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-11 22:36:16 +00:00
David Heinemeier Hansson
fe8fb574c0
Added a differenciation between AssociationCollection#size and -length. Now AssociationCollection#size returns the size of the collection by executing a SELECT COUNT(*) query if the collection hasn't been loaded and calling collection.size if it has. If it's more likely than not that the collection does have a size larger than zero and you need to fetch that collection afterwards, it'll take one less SELECT query if you use length.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@392 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-11 13:21:17 +00:00
David Heinemeier Hansson
b64004fda6
Fixed that conditions in has_many and has_and_belongs_to_many should be interpolated just like the finder_sql is
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@344 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-07 03:55:24 +00:00
David Heinemeier Hansson
5ac11f2de3
Fixed that the overwritten respond_to? method didn't take two parameters like the original #391
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@327 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-03 23:24:31 +00:00
David Heinemeier Hansson
d9e900cd9d
Fixed the last details to please DB2
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@324 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-03 23:00:44 +00:00
David Heinemeier Hansson
609ca177fa
Added HasManyAssociation#count that works like Base#count #413 [intinig]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@318 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-02 18:44:55 +00:00
David Heinemeier Hansson
6bd672eb0d
Added that Base#find takes an optional options hash, including :conditions. Base#find_on_conditions deprecated in favor of #find with :conditions #407 [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@305 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-01 19:50:23 +00:00
David Heinemeier Hansson
dbe8a26d7d
Fixed that options[:counter_sql] was overwritten with interpolated sql rather than original sql #355 [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@248 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-22 13:35:42 +00:00
David Heinemeier Hansson
dcc486805e
Fixed that Base.table_name would expect a parameter when used in has_and_belongs_to_many joins [Anna Lissa Cruz]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@244 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-22 13:00:15 +00:00
David Heinemeier Hansson
7500a54692
Added automatic transaction block around AssociationCollection.<<, AssociationCollection.delete, and AssociationCollection.destroy_all
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@171 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-15 15:09:44 +00:00
David Heinemeier Hansson
68d1056587
Fixed that has_and_belongs_to_many would generate bad sql when naming conventions differed from using vanilla "id" everywhere [RedTerror]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@152 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-14 13:55:17 +00:00
David Heinemeier Hansson
49403831fc
Fixed value quoting in all generated SQL statements, so that integers are not surrounded in quotes and that all sanitation are happening through the database's own quoting routine. This should hopefully make it lots easier for new adapters that doesn't accept '1' for integer columns.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@70 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-07 14:48:53 +00:00
David Heinemeier Hansson
8a40c6b522
Fixed has_and_belongs_to_many guessing of foreign key so that keys are generated correctly for models like SomeVerySpecialClient [Florian Weber]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@69 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-07 12:33:42 +00:00
David Heinemeier Hansson
ea759cb761
Added counter_sql option for has_many associations [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@68 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-07 12:25:01 +00:00
David Heinemeier Hansson
ac3c8a54f8
Silence errors occurring when reloading classes
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@27 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-11-30 16:25:08 +00:00