Xavier Noria
e7b7b44123
implements AR::Relation#explain
...
This is a first implementation, EXPLAIN is highly
dependent on the database and I have made some
compromises.
On one hand, the method allows you to run the most
common EXPLAIN and that's it. If you want EXPLAIN
ANALYZE in PostgreSQL you need to do it by hand.
On the other hand, I've tried to construct a string
as close as possible to the ones built by the
respective shells. The rationale is that IMO the
user should feel at home with the output and
recognize it at first sight. Per database.
I don't know whether this implementation is going
to work well. Let's see whether people like it.
2011-11-05 18:30:19 -07:00
Jon Leighton
562583c766
Add ActiveRecord::Relation#uniq for toggling DISTINCT in the SQL query
2011-11-05 16:22:18 +00:00
Jon Leighton
64747654ca
Revert "Raise error on unknown primary key."
...
This reverts commit ee2be435b1 .
2011-10-05 20:21:21 +01:00
Jon Leighton
ee2be435b1
Raise error on unknown primary key.
...
If we don't have a primary key when we ask for it, it's better to fail
fast. Fixes GH #2307 .
2011-10-05 01:11:40 +01:00
Jon Leighton
11870117c6
Rename first_or_new to first_or_initialize.
...
For consistency with find_or_initialize_by. Also remove first_or_build
alias.
2011-09-13 19:09:01 +01:00
Andrés Mejía
72317883ed
Using more precise method signatures for AR::Relation#first_or_create family of methods.
2011-09-06 02:45:54 -05:00
Andrés Mejía
d03aff7f64
Adding first example with no arguments to AR::Relation#first_or_create and removing examples that create several users at the same time (this is confusing and not really helpful).
2011-09-06 02:02:28 -05:00
Andrés Mejía
84dad446c6
Adding first_or_create, first_or_create!, first_or_new and first_or_build to Active Record.
...
This let's you write things like:
User.where(:first_name => "Scarlett").first_or_create!(:last_name => "Johansson", :hot => true)
Related to #2420 .
2011-08-30 16:33:37 -05:00
Jon Leighton
fe0ec85541
Refactor building the update manager
2011-08-15 23:10:15 +01:00
Jon Leighton
128d006242
Support updates with joins. Fixes #522 .
2011-08-15 23:10:15 +01:00
Jon Leighton
7db90aa7c7
Make it the responsibility of the connection to hold onto an ARel visitor for generating SQL. This improves the code architecture generally, and solves some problems with marshalling. Adapter authors please take note: you now need to define an Adapter.visitor_for method, but it degrades gracefully with a deprecation warning for now.
2011-08-08 23:28:23 +01:00
thedarkone
10863580aa
Bring back the ability to provide :order for update_all.
2011-07-25 13:33:44 +02:00
Jon Leighton
111968d402
Foo.joins(:bar).includes(:bar) should result in a single query with :bar as a join. Related: #1873 .
2011-07-09 11:39:04 +01:00
Akira Matsuda
49bf8597e6
Use Enumerable#with_index. We're on Ruby > 1.8.7
2011-07-08 21:38:02 +09:00
Dmitriy Kiriyenko
f1553731ed
Add require ActiveSupport delegation to ActiveRecord::Relation class.
2011-07-07 17:32:18 +03:00
Aaron Patterson
997aed24be
default create_with_value to a hash so we can eliminate conditionals, add test surrounding create_with(nil) behavior
2011-06-27 14:18:49 -07:00
Brian Mathiyakom
1e43bd9f35
Fix issue #1272
...
Set reverse_order_value when asked to reverse_order().
Do the actual reversal in build_arel.
2011-06-01 18:29:29 +01:00
Hemant Kumar
ed1a0672ab
delegate connection and column_hash calls directly to model
2011-05-28 03:00:11 +05:30
Xavier Noria
00e1d0832e
Merge branch 'master' of git://github.com/lifo/docrails
...
Conflicts:
actionmailer/lib/action_mailer/base.rb
activesupport/lib/active_support/core_ext/kernel/requires.rb
2011-05-25 22:48:47 +02:00
Jon Leighton
c69111ba5f
Fix infinite recursion where a lazy default scope references a scope. Fixes #1264 .
2011-05-25 00:08:14 +01:00
Jon Leighton
a000ff7a50
Ensure that the surrounding code in Relation#to_a respects the default_scope (as well as having Relation#arel respect the default scope). Fixes #1233 .
2011-05-24 23:29:44 +01:00
Sebastian Martinez
0034b7822d
Remove extra white spaces on ActiveRecord docs.
2011-05-23 20:58:25 -03:00
Aaron Patterson
1d7c0336ef
using bind parameters for updates
2011-04-30 17:27:46 -07:00
Aaron Patterson
f1df6b2dce
postgresql supports prepare statement deletes
2011-04-29 11:09:37 -07:00
Ken Collins
35d0b6029f
Use existing #empty_insert_statement_value for an insert with no columns.
2011-04-24 12:52:28 -04:00
Ken Collins
bc50c1cb02
The #substitute_at gets an ActiveRecord::ConnectionAdapters::Column in #insert to match replacement in #exec_query.
2011-04-23 00:15:33 +08:00
Aaron Patterson
9951af0289
sort insert columns for better cache hits
2011-04-14 14:26:57 -07:00
Aaron Patterson
12ae92216b
refactoring inserts to use the same method on the connection
2011-04-14 13:37:40 -07:00
Aaron Patterson
8571facea3
insert statements are prepared, but values are not escaped properly
2011-04-14 13:37:39 -07:00
Jon Leighton
788bd30859
ActiveRecord::Base.scopes hash is not needed
2011-04-12 19:46:04 -07:00
Jon Leighton
8572ae6671
Evaluate default scopes at the last possible moment in order to avoid problems with default scopes getting included into other scopes and then being unable to remove the default part via unscoped.
2011-04-12 19:46:04 -07:00
Jon Leighton
5740d4ec0c
Deprecated support for passing hashes and relations to default_scope, in favour of defining a 'default_scope' class method in the model. See the CHANGELOG for more details.
2011-04-12 19:46:04 -07:00
Emilio Tagua
b35617235d
Use IM when trying to load records using ID.
...
Signed-off-by: José Valim <jose.valim@gmail.com >
2011-04-04 10:48:12 +02:00
Andrew White
555d016389
Quote find_in_batches ORDER BY clause [ #6620 state:resolved]
2011-03-29 17:24:55 +01:00
Aaron Patterson
15d3cc21f4
pushing id insertion and prefetch primary keys down to Relation#insert
2011-03-22 09:18:01 -07:00
Chris Oliver
015192560b
Fixed a bug when empty? was called on a grouped Relation that wasn't loaded
...
[#5829 state:resolved]
Signed-off-by: Andrew White <andyw@pixeltrix.co.uk >
2011-03-12 22:31:21 +00:00
Jon Leighton
532f915037
Referencing a table via the ON condition in a join should force that table to be eager-loaded via a JOIN rather than via subsequent queries.
2011-03-07 08:51:17 -08:00
Jon Leighton
d90b4e2615
Rewrote AssociationPreload.
2011-02-28 22:12:34 +00:00
Aaron Patterson
8fc54a2e81
only take the limit if there is a limit to take
2011-02-25 14:24:05 -08:00
Aaron Patterson
4bd8d2607c
Relation will delegate to AR::Base which already uses the Dynamic finders, so eliminate duplicate calls
2011-02-22 11:07:51 -08:00
Rodrigo Navarro
62fd334684
Adding new examples for update_all method
2011-02-20 22:22:52 -03:00
Rodrigo Navarro
4da0157aaf
Adding examples
2011-02-20 22:03:29 -03:00
Emilio Tagua
8ee0b44148
Merge remote branch 'rails/master' into identity_map
...
Conflicts:
activerecord/examples/performance.rb
activerecord/lib/active_record/association_preload.rb
activerecord/lib/active_record/associations.rb
activerecord/lib/active_record/associations/association_proxy.rb
activerecord/lib/active_record/autosave_association.rb
activerecord/lib/active_record/base.rb
activerecord/lib/active_record/nested_attributes.rb
activerecord/test/cases/relations_test.rb
2011-02-15 12:01:04 -03:00
Aaron Patterson
1c6f4562d7
primary keys should not be cleared on cache clear, fixing oracle tests
2011-02-08 16:01:16 -08:00
Jon Leighton
2120da7f73
ActiveRecord::Relation#primary_key should return a string, just like ActiveRecord::Base.primary_key does.
2011-01-03 16:24:32 -08:00
Aaron Patterson
23b03baba6
use the sql literal factory method
2010-12-24 16:01:07 -07:00
Aaron Patterson
0fbf829b1e
stop the recursive insanity
2010-12-24 15:59:02 -07:00
Aaron Patterson
34d79fad85
setting the primary key on the update manager
2010-12-24 15:59:02 -07:00
Raimonds Simanovskis
2b795050de
fixed retrieval of primary key value in Ralation#insert method
...
previously primary key value was always assigned nil which caused Oracle enhanced adapter failing tests
2010-12-23 23:22:00 +08:00
Emilio Tagua
02fc6fbccd
Merge remote branch 'rails/master' into identity_map
...
Conflicts:
activerecord/lib/active_record/associations/association_proxy.rb
activerecord/lib/active_record/autosave_association.rb
activerecord/lib/active_record/base.rb
activerecord/lib/active_record/persistence.rb
2010-12-20 11:23:07 -03:00