aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #7028 from lexmag/join_table_indexesJosé Valim2012-07-185-15/+51
|\ | | | | Add indexes to create_join_table method
| * Add join table migration generatorAleksey Magusev2012-07-185-15/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | For instance, running rails g migration CreateMediaJoinTable artists musics:uniq will create a migration with create_join_table :artists, :musics do |t| # t.index [:artist_id, :music_id] t.index [:music_id, :artist_id], unique: true end
* | AR::Integration must be included after AM::ConversionJohn Firebaugh2012-07-172-1/+7
| | | | | | | | | | | | | | Integration's definition of #to_param must override Conversion's. Otherwise, there is a regression from 3.1 in the behavior of a non-persisted AR::Base instance which nevertheless has an id.
* | Merge pull request #7076 from kennyj/fix_class_evalAaron Patterson2012-07-172-3/+3
|\ \ | | | | | | Fix class_eval without __FILE__ and __LINE__.
| * | Fix class_eval without __FILE__ and __LINE__.kennyj2012-07-182-3/+3
| | |
* | | Fixes "Cannot visit ..." with validates_uniqueness_ofbeerlington2012-07-172-1/+17
|/ / | | | | | | | | | | Fixes issue with overrding ActiveRecord reader methods with a composed object and using that attribute as the scope of a validates_uniqueness_of validation.
* | Fix activerecord model to_ary method comment 'see also' linkKang Wen2012-07-161-1/+1
| |
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-07-152-3/+40
|\ \
| * | session_id column is string in defaultkennyj2012-07-151-1/+1
| | |
| * | Add docs for having, lock and readonlyOscar Del Ben2012-07-071-0/+12
| | |
| * | Add doc for joins and improve includes docOscar Del Ben2012-07-071-2/+17
| | |
| * | Add docs for eager_laod and preloadOscar Del Ben2012-07-071-0/+10
| | |
* | | Fix SqlBypass.data_column= problem. SqlBypass.find_by_session_id method ↵kennyj2012-07-152-1/+15
| | | | | | | | | | | | didn't use this assignment.
* | | Avoid to call send(store_attribute) twice.kennyj2012-07-151-6/+8
| | |
* | | teaching the mysql adapter how to typecast strings returned from the databaseAaron Patterson2012-07-132-4/+134
| | |
* | | fixing tests to deal with data differences between prepared statements and ↵Aaron Patterson2012-07-133-3/+8
| | | | | | | | | | | | | | | | | | | | | non-prepared statements Conflicts: activerecord/test/cases/query_cache_test.rb
* | | Fixing texts; down to three failing tests.Jeremy Cole2012-07-132-15/+24
| | | | | | | | | | | | | | | Conflicts: activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
* | | Only use prepared statements when bind variables are presentJeremy Cole2012-07-131-34/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prepared statements (prepare/execute/close) were being used unnecessarily when no bind variables were present, and disabling prepared statement using prepared_statements:false was principally broken. While bind variables were correctly substituted with prepared_statements:false, the prepared statement interface was still used, costing an extra two round trips per query. In addition to making this behavioral change, I also cleaned up the internals of exec_stmt and exec_without_stmt so that they behave the same (calling log and constructing the ActiveRecord::Result in the same way). Moving the check for binds.empty? to exec_query also will mean that several code paths explicitly calling exec_without_stmt could be cleaned up to once again call exec_query instead. I have also left the check for binds.empty? in exec_stmt, since it is not a private method and could be called directly with an empty binds array. For the sake of clarity in this patch, I have not made those changes. = The previous behavior = When issuing a Foo.find(1) with prepared_statements:true, the bind variable is present in the prepared query, and execute shows a value passed: Connect root@localhost on rails_test Query SET SQL_AUTO_IS_NULL=0 Statistics Query SHOW FULL FIELDS FROM `foos` Query SHOW TABLES LIKE 'foos' Query SHOW CREATE TABLE `foos` Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1 Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1 Close stmt Quit When issuing a Foo.find(1) with prepared_statements:false, the bind variable has already been removed and substituted with the value, but the prepared statement interface is used anyway: Connect root@localhost on rails_test Query SET SQL_AUTO_IS_NULL=0 Statistics Query SHOW FULL FIELDS FROM `foos` Query SHOW TABLES LIKE 'foos' Query SHOW CREATE TABLE `foos` Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1 Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1 Close stmt Quit = With this patch applied = When issuing a Foo.find(1) with prepared_statements:true, the bind variable is present in the prepared query, and execute shows a value passed: Connect root@localhost on rails_test Query SET SQL_AUTO_IS_NULL=0 Statistics Query SHOW FULL FIELDS FROM `foos` Query SHOW TABLES LIKE 'foos' Query SHOW CREATE TABLE `foos` Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1 Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1 Close stmt Quit When issuing a Foo.find(1) with prepared_statements:false, the bind variable has been removed and substituted with the value, and the query interface is used instead of the prepared statement interface: Connect root@localhost on rails_test Query SET SQL_AUTO_IS_NULL=0 Statistics Query SHOW FULL FIELDS FROM `foos` Query SHOW TABLES LIKE 'foos' Query SHOW CREATE TABLE `foos` Query SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1 Quit
* | | fix association :extend optionJon Leighton2012-07-136-16/+26
| | |
* | | Remove duplicated unique index name.kennyj2012-07-141-4/+7
| | |
* | | Remove instance level quote_value method. This method is private and also ↵kennyj2012-07-142-10/+3
| | | | | | | | | | | | exists in class method.
* | | Merge pull request #7045 from kennyj/remove_duplicated_code_20120714Rafael Mendonça França2012-07-131-11/+3
|\ \ \ | | | | | | | | Remove duplicated code in the AR::Store.
| * | | Remove duplicated code in the AR::Store.kennyj2012-07-141-11/+3
| | | |
* | | | revises RUNNING_UNIT_TESTS to delegate stuff to the contributing guideXavier Noria2012-07-131-11/+5
| | | |
* | | | move the deprecated options into active_record_deprecated_findersJon Leighton2012-07-132-5/+2
| | | |
* | | | stop using class_attribute where methods/inheritance will suffice.Jon Leighton2012-07-139-55/+57
| | | |
* | | | Add link to relevant rails guide to Active Record unit test docs.Katrina Owen2012-07-131-0/+3
| | | |
* | | | Add note about needing mysql superuser for unit tests.Katrina Owen2012-07-131-0/+2
|/ / /
* | | Add documentation for ActiveRecord::Observer.Katrina Owen2012-07-131-0/+6
| | | | | | | | | | | | The instructions about configuration covered only rails-specific usage.
* | | extract deprecated association options to active_record_deprecated_findersJon Leighton2012-07-131-43/+0
| | |
* | | Represent association scope options as AR::Relations insternally.Jon Leighton2012-07-1315-165/+191
| | |
* | | fix assertion arguments orderJon Leighton2012-07-131-2/+2
| | |
* | | Allow associations to take a lambda which builds the scopeJon Leighton2012-07-139-48/+69
| | |
* | | support relations created with a table aliasJon Leighton2012-07-132-1/+11
| | |
* | | Add teardown method to AR::Mig::RenameTableTestRobb Kidd2012-07-101-18/+13
| | | | | | | | | | | | | | | | | | | | | Dry up reseting the renamed table after each test. Also made use of the AR::Base.connection object already available from AR::MigrationTest#connection.
* | | Merge pull request #6874 from robbkidd/rename_sequences_tooAaron Patterson2012-07-102-0/+20
|\ \ \ | |_|/ |/| | Rename default sequence when table is renamed? [AR:postgres]
| * | Update psql adapter to rename a default pkey sequence when renaming a table.Robb Kidd2012-06-272-0/+20
| | |
* | | Add references statements to migration generatorAleksey Magusev2012-07-081-4/+16
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | AddXXXToYYY/RemoveXXXFromYYY migrations are produced with references statements, for instance rails g migration AddReferencesToProducts user:references supplier:references{polymorphic} will generate the migration with: add_reference :products, :user, index: true add_reference :products, :supplier, polymorphic: true, index: true
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-07-073-6/+41
|\ \
| * | minor text change [ci skip]Vijay Dev2012-07-071-1/+1
| | |
| * | Revert "Add nodoc to relation methods"Vijay Dev2012-07-071-22/+24
| | | | | | | | | | | | | | | | | | This reverts commit c47a698d5d497340d4e349257522212173865838. Reason: Let's revert pending further discussions
| * | Add nodoc to relation methodsOscar Del Ben2012-07-061-24/+22
| | |
| * | Add order docsOscar Del Ben2012-07-051-0/+10
| | |
| * | Add group documentationOscar Del Ben2012-07-051-0/+12
| | |
| * | Add documentation for includesOscar Del Ben2012-07-051-0/+11
| | |
| * | remove :nodoc: of AR::Scoping#unscoped [ci skip]Francesco Rodriguez2012-07-011-4/+4
| | |
| * | fix AR::SchemaStatements#column_exists? example [ci skip]Francesco Rodriguez2012-06-301-1/+1
| | |
| * | update AR::SchemaStatements#column_exists? documentation [ci skip]Francesco Rodriguez2012-06-301-2/+4
| | |
* | | Refactor locked? method in query cacheCarlos Antonio da Silva2012-07-071-5/+2
| | | | | | | | | | | | Introduced in 75b340d1a4bcf2f1233fb65a15ff6b8059e2230e
* | | Load all records in Relation#inspectJon Leighton2012-07-071-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A test was failing due to the way that Relation#inspect causes association proxies to ignore unsaved records added to the association. This is fixed by simply calling to_a and letting to_a figure out how to get the records (which, in the case of associations, takes into account new records). I think it is acceptable to do this rather than limiting the query at the database level: * It's what we've done in all released Rails versions up to this point * The goal of the limit is to not flood the console with output - this is the problem we're targeting, rather than the actual loading of the records from the database * You probably want to do something with those records later anyway, otherwise you wouldn't have built a relation for them.