Commit Graph

1967 Commits

Author SHA1 Message Date
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
Jeremy Kemper
657898c821 Merge commit 'sven/i18n'
Conflicts:
	activesupport/lib/active_support.rb
2008-08-27 12:31:07 -07:00
pivotal
9dbde4f5cb Fix two has_one :through errors
* Set the association target on assignment;
* Reset target to nil on reset, rather than empty array.

Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#895 state:committed]
2008-08-27 11:22:15 +02:00
Marko Seppae
0fcd5b5466 I18n: removed call to #populate from main library files 2008-08-27 10:36:00 +02:00
Joshua Peek
8756dd75b2 Performance: reduce garbage created by ActiveRecord::Calculations#column_alias_for 2008-08-26 14:24:52 -05:00
Tarmo Tänav
3dfecfe773 Print the queries that were executed if assert_queries fails 2008-08-26 12:45:04 +02:00
Jeremy Kemper
e06878c22b Merge branch 'master' of git@github.com:rails/rails 2008-08-26 03:04:14 -07:00
Tarmo Tänav
00d2165f74 Back to fetching all versions in ruby instead of letting SQL do it as it's difficult to get all databases to convert the text value to a number with the same SQL
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-26 03:00:36 -07:00
Jeremy Kemper
b319e69ecb PostgreSQL: pg driver expects nil instead of empty string for missing user/pass 2008-08-26 01:54:14 -07:00
Josh Susser
1092c181b5 add dynamic finder bang version to raise RecordNotFound
[#905 state:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-25 23:33:16 -07:00
Josh Susser
143f5fbb21 refactor dynamic finder name matching into its own class
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2008-08-25 23:32:20 -07:00