Commit Graph

5214 Commits

Author SHA1 Message Date
Mark J. Titorenko
f41b58d3b2 use thread locals and an instance variable within QueryCache#BodyProxy to maintain appropriate linkage with AR database connection across threads 2011-10-07 10:05:51 +01:00
Aaron Patterson
3088d23647 Merge pull request #3232 from Juanmcuello/pg_prepared_statements
Use the schema_search_path in prepared statements.
2011-10-06 20:08:05 -07:00
Vijay Dev
33799c8fc3 Merge pull request #3203 from jrmehle/fix_clone_structure
db:test:clone_structure if path to .sql file contains spaces or dashes
2011-10-06 02:13:36 -07:00
Jeremy Kemper
999b7ed94d Transactional fixtures enlist all active database connections.
You can use multiple databases in your tests without disabling transactional fixtures.
2011-10-05 19:10:18 -07:00
Jon Leighton
2e9e647fee Raise an exception on unknown primary key inside AssociationReflection.
An association between two models cannot be made if a relevant key is
unknown, so fail fast rather than generating invalid SQL. Fixes #3207.
2011-10-05 20:21:21 +01:00
Jon Leighton
64747654ca Revert "Raise error on unknown primary key."
This reverts commit ee2be435b1e5c0e94a4ee93a1a310e0471a77d07.
2011-10-05 20:21:21 +01:00
Juan M. Cuello
cfc95d89ae Use the schema_search_path in prepared statements.
To allow the use of prepared statements when changing schemas in
postgres, the schema search path is added to the sql key.
2011-10-05 11:43:03 -03: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
Ben Woosley
88f60fd1a7 Changing rake db:schema:dump to run :environment as well as :load_config, as running :load_config alone will lead to the dumper being run without including extensions such as those included in foreigner and spatial_adapter.
This reverses a change made here: 5df72a238e (L0L324)

I'm assuming here that :load_config needs to be invoked separately from :environment, as it is elsewhere in the file for db operations, if not the alternative is to go back to "task :dump => :environment do".

Signed-off-by: José Valim <jose.valim@gmail.com>
2011-10-04 11:25:20 +02:00
Jared Mehle
80e0cd3290 Quoted path to <Rails.env>_structure.sql file in db:test:clone_structure task.
Leaving the path unquoted causes errors in paths containing spaces or dashes.
2011-10-03 14:50:40 -05:00
Jon Leighton
adb8ac153f Don't call self.class unless necessary. Closes #3171. 2011-09-29 18:00:30 +01:00
Vijay Dev
33b55cfbdb Merge branch 'master' of github.com:lifo/docrails 2011-09-28 00:04:45 +05:30
Diego Plentz
aafd4c0452 fixing docs for delete_sql where quotes should be used in this example. 2011-09-26 20:06:17 -03:00
Jon Leighton
b3407c86cf Don't require a DB connection when setting primary key.
Closes #2807.
2011-09-26 18:15:09 +01:00
Jon Leighton
89e98e278a Merge pull request #3030 from htanata/fix_habtm_select_query_method
Fix: habtm doesn't respect select query method
2011-09-26 16:52:23 +01:00
Jon Leighton
3b87c38d02 Fix belongs_to polymorphic with custom primary key on target.
Closes #3104.
2011-09-26 15:42:34 +01:00
Jon Leighton
b838059817 CollectionProxy#replace should change the DB records rather than just mutating the array. Fixes #3020. 2011-09-26 10:41:58 +01:00
Vijay Dev
caa95ab6d8 Merge branch 'master' of github.com:lifo/docrails 2011-09-21 19:35:09 +05:30
Vijay Dev
ed1ada84ac copy edits 908f2616 2011-09-20 19:46:59 +05:30
José Valim
51bef9d8fb to_xml should also rely on serializable hash. 2011-09-18 09:09:01 -07:00
Ryan Bigg
908f2616d5 Document ActiveRecord::QueryMethods#select 2011-09-17 16:08:58 -07:00
Vijay Dev
49476eee78 Merge branch 'master' of github.com:lifo/docrails 2011-09-15 00:32:52 +05:30
Vijay Dev
dcd70773fc minor edit 2011-09-14 23:15:18 +05:30
Ryan Bigg
681c4dbb02 Add documentation for the extending method in ActiveRecord:QueryMethods 2011-09-14 09:43:31 +10:00
Jon Leighton
3b8a7cf2a7 Stop trying to be clever about when to define attribute methods.
There is no meaningful performance penalty in defining attribute
methods, since it only happens once.

There is also no reason *not* to define them, since they get thrown in
an included module, so they will not 'overwrite' anything. In fact, this
is desirable, since it allows us to call super.
2011-09-14 00:00:37 +01:00
Jon Leighton
55da28dd2f We don't need to build a set for DangerousAttributeError.
We can just use method_defined? and private_method_defined?
2011-09-14 00:00:37 +01:00
Erik Behrends
3777d4217b [:class_name] option in belongs_to should mention belongs_to and not has_one 2011-09-13 22:42:39 +03: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
Jon Leighton
1a421ceccb Deprecate using method_missing for attributes that are columns.
This shouldn't ever happen unless people are doing something
particularly weird, but adding a deprecation in case there are bugs not
caught by our tests.
2011-09-13 00:03:09 +01:00
Jon Leighton
ac687ed651 Let Ruby deal with method visibility.
Check respond_to_without_attributes? in method_missing. If there is any
method that responds (even private), let super handle it and raise
NoMethodError if necessary.
2011-09-13 00:01:58 +01:00
Jon Leighton
eecfa84a90 Always generate attribute methods on the base class.
This fixes a situation I encountered where a subclass would cache the
name of a generated attribute method in @_defined_class_methods. Then,
when the superclass has it's attribute methods undefined, the subclass
would always have to dispatch through method_missing, because the
presence of the attribute in @_defined_class_methods would mean that it
is never generated again, even if undefine_attribute_methods is called
on the subclass.

There various other confusing edge cases like this. STI classes share
columns, so let's just keep all the attribute method generation state
isolated to the base class.
2011-09-13 00:01:58 +01:00
Jon Leighton
50d395f96e Raise error when using write_attribute with a non-existent attribute.
Previously we would just silently write the attribute. This can lead to
subtle bugs (for example, see the change in AutosaveAssociation where a
through association would wrongly gain an attribute.

Also, ensuring that we never gain any new attributes after
initialization will allow me to reduce our dependence on method_missing.
2011-09-13 00:01:58 +01:00
Jon Leighton
3386a089ef Fix warnings.
Make sure we don't redefine an already-defined attribute method.
2011-09-13 00:01:57 +01:00
Jon Leighton
99bd6b53da Add deprecation for doing attribute_method_suffix '' 2011-09-13 00:01:57 +01:00
Jon Leighton
8d59e0b263 Alias id= if necessary, rather than relying on method_missing 2011-09-13 00:01:57 +01:00
Santiago Pastorino
4bcacc8066 Merge pull request #2936 from joelmoss/migration_status
db:migrate:status not looking at all migration paths
2011-09-11 17:06:21 -07:00
Jon Leighton
cbf1dc7842 Merge pull request #2757 from andmej/first_or_create_pull_request
Add first_or_create family of methods to Active Record
2011-09-08 15:07:23 -07:00
Aaron Patterson
e1b500ec96 LRU cache in mysql and sqlite are now per-process caches. 2011-09-07 15:26:47 -07:00
Aaron Patterson
834d429e84 LRU should cache per process in postgresql. fixes #1339 2011-09-07 15:26:47 -07:00
Aaron Patterson
b9f66f4db1 fixing view queries 2011-09-07 10:44:51 -07:00
Aaron Patterson
d9a20711da use the supplied bind values 2011-09-07 10:44:51 -07:00
Aaron Patterson
f5ea24b3db Merge commit 'refs/pull/2909/head' of https://github.com/rails/rails into rawr
* https://github.com/rails/rails:
  Postgresql adapter: added current_schema check for table_exists?
  Postgresql adapter: added current_schema check for table_exists?
2011-09-07 10:44:50 -07:00
Jon Leighton
143769051b Don't include any of includes, preload, joins, eager_load in the through association scope. 2011-09-07 09:27:41 +01:00
Jon Leighton
db8d54ebf5 Merge pull request #2485 from akaspick/exists_fix
fix exists? to return false if passed nil (which may come from a missing
2011-09-07 00:38:51 -07:00
Aaron Patterson
4edf6ea0ea Merge pull request #2897 from rsutphin/ar31-remove_connection
Patch for issue #2820
2011-09-06 17:43:58 -07:00
Aaron Patterson
54b7e783ef Database adapters use a statement pool.
Database adapters use a statement pool for limiting the number of open
prepared statments on the database.  The limit defaults to 1000, but can
be adjusted in your database config by changing 'statement_limit'.
2011-09-06 16:47:34 -07:00
Aaron Patterson
a4fa6eab39 adding a statement pool for mysql and sqlite3 2011-09-06 16:06:27 -07:00
Jon Leighton
9bde73ff72 Nested through associations: preloads from the default scope of a through model should not be included in the association scope. (We're already excluding includes.) Fixes #2834. 2011-09-06 16:34:32 +01:00
Jon Leighton
b24d668859 Ensure we are not comparing a string with a symbol in HasManyAssociation#inverse_updates_counter_cache?. Fixes #2755, where a counter cache could be decremented twice as far as it was supposed to be. 2011-09-06 15:58:07 +01:00
Jon Leighton
9f3e732e65 Make the logic easier to read 2011-09-06 12:59:11 +01:00