David Heinemeier Hansson
6dc9173a63
Missing doc updates
2008-09-09 23:59:54 -05:00
miloops
567392bff3
Added find_last_by dynamic finder [status:committed #762 ]
...
Signed-off-by: David Heinemeier Hansson <david@loudthinking.com >
2008-09-09 23:44:52 -05:00
Hongli Lai (Phusion)
1398db0128
Add special AssociationReflection methods for creating association objects, and modify the code base to use those methods instead of creating association objects directly. This allows plugins to hook into association object creation behavior.
...
[#986 state:resolved]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-09 13:13:12 -07:00
Hongli Lai (Phusion)
1692940441
Make the options that has_many, belongs_to and other association generation methods can accept, configurable.
...
[#985 state:resolved]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-09 12:50:32 -07:00
Michael Koziarski
07913788f9
Interpolation requires double quotes
2008-09-09 21:16:06 +02:00
Jeremy Kemper
4f6875296f
Revert "Revert "Raise UnknownAttributeError when unknown attributes are supplied via mass assignment""
...
This reverts commit 41efd73887 .
2008-09-08 09:45:26 -07:00
Jeremy Kemper
41efd73887
Revert "Raise UnknownAttributeError when unknown attributes are supplied via mass assignment"
...
This reverts commit 108db00aa9 .
2008-09-06 21:01:45 -07:00
David Heinemeier Hansson
227ee2ecb4
Use a more sensible resolution on the new millisecond benchmarks
2008-09-05 14:58:34 +02:00
David Heinemeier Hansson
de0e7507de
Changed all benchmarking reports to be in milliseconds
2008-09-05 14:22:57 +02:00
Michael Koziarski
ca5ffd10b9
Handle connection timeouts with a slightly nicer error message.
2008-09-04 17:02:04 +02:00
Nick Sieger
0d9e238cc9
Remove flawed execute("ROLLBACK") approach; #reset! defaults to nothing
...
Will need community help to fill out what #reset! should do for each adapter
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-04 15:45:00 +02:00
Nick Sieger
a3f12f575d
Default connection allow_concurrency to false (for PostgreSQL)
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-04 15:44:05 +02:00
Nick Sieger
7ba2872615
Deprecate verification_timeout and verify before reset
...
Signed-off-by: Michael Koziarski <michael@koziarski.com >
2008-09-04 14:36:09 +02:00
Jeremy Kemper
039d78a7d8
still need to track whether we're the toplevel transaction
2008-09-04 13:17:00 +02:00
Jeremy Kemper
045713ee24
PostgreSQL: introduce transaction_active? rather than tracking activity ourselves
2008-09-04 12:17:56 +02:00
Pratik Naik
6ef35461dc
Merge docrails
2008-09-03 17:58:47 +01:00
Clemens Kofler
288e947ae1
Some performance goodness for inheritable attributes.
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-03 00:55:23 +02:00
Clemens Kofler
4d092ba208
Some performance goodness for AR.
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-03 00:55:23 +02:00
Clemens Kofler
ba3ecf53b4
Some performance goodness for AR associations.
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-03 00:55:22 +02:00
Clemens Kofler
1646e8c364
More symbols for send and respond_to?.
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-09-03 00:55:22 +02:00
Jeremy Kemper
6f932b4790
Database connections are now pooled, one pool per #establish_connection call.
...
Pools start out empty and grow as necessary to a maximum size (default is 5,
configure size with key 'pool' in your database configuration). If no
connections are available, a thread will wait up to a 'wait_timeout' time
(default is 5 seconds).
Connections are verified and reset when checked out from the pool (usually
upon first access to ActiveRecord::Base.connection), and returned back to the
pool after each request.
If you would like to use connection pools outside of ActionPack, there is an
ActiveRecord::Base.connection_pool method that gives you access to the pool,
and you can manually checkout/checkin connections, or supply a block to
ActiveRecord::Base.connection_pool.with_connection which takes care of the
checkout/checkin for you.
[#936 state:resolved]
2008-09-02 18:32:54 +02:00
Iain Hecker
76797b4439
translates when a message symbol has been set on builtin validations
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-08-31 13:24:08 -07:00
miloops
6183e55f71
Use reflection primary_key instead of id for when selecting association ids.
...
[#906 state:resolved]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-08-30 17:39:30 -07:00
miloops
b163d83b8b
Performance: Better query for ASSOCIATION_ids. Select only ids if the association hasn't been loaded.
...
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net >
2008-08-30 15:24:09 -07:00
Tom Stuart
7f179f8540
Make NamedScope#size behave identically to AssociationCollection#size. [ #933 state:resolved]
...
Signed-off-by: Pratik Naik <pratiknaik@gmail.com >
2008-08-29 22:18:49 +01:00
Joshua Peek
c0361344d9
1.9: methods need to be coerced into strings
2008-08-29 15:43:07 -05:00
Michael Koziarski
99492bad88
Use a set for the named scope methods not a big regexp.
2008-08-29 21:12:37 +02:00
Nick Sieger
300754509b
Minor tweak to retrieve_connection_pool -- recurse instead of loop
2008-08-29 14:12:13 -05:00
Nick Sieger
113cc4e1c4
Remove some synchronization that's probably overkill, assuming one doesn't establish connections frequently
2008-08-29 14:12:13 -05:00
Nick Sieger
8e5e02bdad
Collapse connection pool class hierarchy; YAGNI.
...
- Add connection checkin and checkout callbacks to adapter to allow
adapter-specific customization of behavior (e.g., JRuby w/ JNDI)
2008-08-29 14:12:12 -05:00
Nick Sieger
d07a6b1a4a
Make clear_active_connections! also return stale connections back to the pool
...
- also clean up some cruft remaining from per-thread connection cache
2008-08-29 14:12:12 -05:00
Nick Sieger
212134dce1
Remove CachedConnectionPerThread per-thread pooling mechanism in favor of a fixed pool with default maximum of 5 connections
2008-08-29 14:12:12 -05:00
Nick Sieger
ca6d71753f
Deprecate allow_concurrency and make it have no effect
2008-08-29 14:12:12 -05:00
Nick Sieger
a96b7d4c33
Add connection reset and verification upon each connection checkout
2008-08-29 14:12:12 -05:00
Nick Sieger
d7d2d73d88
Fix typo: was using brackets instead of parens. Must need more sleep.
2008-08-29 14:12:11 -05:00
Nick Sieger
1712e37c90
Favor existing connections over new ones if available
2008-08-29 14:12:11 -05:00
Nick Sieger
817a07b451
More doco and class/method renames. Now have a strategy for integration with ActionPack.
2008-08-29 14:12:11 -05:00
Nick Sieger
3ce64d4f16
Fix checkin method, add a couple more tests
2008-08-29 14:12:11 -05:00
Nick Sieger
fe575dd4a9
Nearing the finish line. Initial fixed-size connection pool implemented, more docs
2008-08-29 14:12:11 -05:00
Nick Sieger
82fcd9d85f
Clean up the code, get rid of reserve/release, add some more docs
2008-08-29 14:12:10 -05:00
Nick Sieger
029952edf4
Extract a base class for connection pools, start to flesh out reserve/release API
2008-08-29 14:12:10 -05:00
Nick Sieger
72d959d9b5
Split connection handler into single- and multiple-thread versions.
2008-08-29 14:12:10 -05:00
Nick Sieger
ff97e9d029
Connection handling methods extracted out into separate ConnectionHandler class
...
- delegating methods left behind
2008-08-29 14:12:10 -05:00
Nick
37b0b36918
Fix failure to retain value of allow_concurrency
...
- Also carry allow_concurrency value through to connection adapter
(for postgresql)
2008-08-29 14:12:09 -05:00
Nick
cab76ce6ac
Add synchronization to connection pool also
2008-08-29 14:12:09 -05:00
Nick
50cd4bdc99
Introduce synchronization around connection pool access
...
- use new active support Module#synchronize
- allow_concurrency now switches between a null monitor and a
regular monitor (defaulting to null monitor to avoid overhead)
2008-08-29 14:12:09 -05:00
Nick
5879b15f23
Rename defined_connections to connection_pools
...
- Distinguis meaning of "active_connections" to always mean connections
associated with the current thread
2008-08-29 14:12:08 -05:00
Nick
6edaa26717
Initial conversion to connection pool
...
So far so good, tests still run clean. Next steps: synchronize connection pool access
and modification, and change allow_concurrency to simply switch a real lock for a
null lock.
2008-08-29 14:12:08 -05:00
Eugene Pimenov
743f0e7114
Make case insensitive validates_uniqueness_of use unicode aware downcase method.
...
Signed-off-by: Michael Koziarski <michael@koziarski.com >
2008-08-29 20:24:20 +02:00
Nick Sieger
a9086b3daa
Make query-cache thread-local
...
Signed-off-by: Joshua Peek <josh@joshpeek.com >
2008-08-29 10:21:39 -05:00