aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Remove obsolete line.Jon Leighton2012-07-201-1/+0
| | | | | | | | This code is broken (it should say association_scope.uniq_value rather than options[:uniq]) but the tests still pass. I think it is designed to uniq-ify associations using finder_sql. However, I am about to remove that anyway.
* Convert association macros to the new syntaxJon Leighton2012-07-2016-135/+136
|
* Avoid options ever being nilJon Leighton2012-07-202-8/+8
| | | | This fixes active_record_deprecated_finders.
* Merge pull request #7078 from kennyj/logging_query_planRafael Mendonça França2012-07-192-2/+14
|\ | | | | Log query plan when we use count_by_sql method.
| * Log query plan when we use count_by_sql method.kennyj2012-07-182-2/+14
| |
* | Create default join table name using a SymbolCarlos Antonio da Silva2012-07-191-1/+1
| | | | | | | | | | Lets stick with a symbol in join table name, it was removed in 993e1643650b7b0939437f86b7b4cda0d92b0b8f and broke the build.
* | Use attributes instead of table names in migration exampleJosé Valim2012-07-191-1/+1
| |
* | Add fkey attributes to `join_table` migration generatorAleksey Magusev2012-07-193-6/+14
| |
* | revert Default timestamps to non-nullDave Kroondyk2012-07-183-7/+7
| | | | | | | | | | | | | | Commit 3dbedd2 added NOT NULL constraints to timestamps. Commit fcef728 started to revert this, but was incomplete. With this commit, 3dbedd2 should be fully reverted and timestamps will no longer default to NOT NULL.
* | Update changelog for migration generator changeJosé Valim2012-07-181-0/+7
| |
* | 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
| | |