Commit Graph

1977 Commits

Author SHA1 Message Date
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
Jan De Poorter
db116a2ed6 Fix NamedScope regex so methods containing "an" get delegated to proxy_found. [#901 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
2008-08-29 14:06:37 +01:00
Andrew White
db22c89543 Merge scoped :joins together instead of overwriting them. May expose scoping bugs in your code!
[#501 state:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-28 12:07:15 -07:00
Ernie Miller
44af2efa2c Refactored AssociationCollection#count for uniformity and Ruby 1.8.7 support.
[#831 state:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-28 11:58:25 -07:00
Tarmo Tänav
96c6fe0842 Implement count limit/offset support for has_many associations
[#348 state:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-27 23:32:21 -07:00
Tarmo Tänav
13671cc565 Alias included associations if needed when doing a count
[#302 state:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-27 23:29:29 -07:00
Tom Lea
ad562c58ea Dirty: treat two changes resulting in the original value as being unchanged.
[#798 state:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-27 23:13:41 -07:00
Lars Kanis
c2068d14d2 PostgreSQL: fix quote_string for certain old pg drivers. [#94 state:resolved] 2008-08-27 22:51:10 -07:00
Jeremy Kemper
a444c78212 respond_to? passes along splat args to avoid introducing the second arg if it was omitted 2008-08-27 21:32:51 -07:00