aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | Clarify that t.references and t.belongs_to are interchangeable. [ci skip]Juanito Fatas2015-03-021-1/+1
| |/ / / /
* | | | | call `sync_with_transaction_state` inside `persisted?` then check ivarsAaron Patterson2015-03-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directly calling `sync_with_transaction_state` is not fast, so if we call it once, we can improve the performance of the `persisted?` method. This is important because every call to `url_for(model)` will call `persisted?`, so we want that to be fast. Here is the benchmark: ```ruby require 'active_record' ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:" ActiveRecord::Base.connection.instance_eval do create_table(:articles) end class Article < ActiveRecord::Base; end article = Article.new.tap(&:save!) Benchmark.ips do |x| x.report("persisted?") do article.persisted? end end ``` Before this patch: ``` $ bundle exec ruby -rbenchmark/ips persisted.rb Calculating ------------------------------------- persisted? 3.333k i/100ms ------------------------------------------------- persisted? 51.037k (± 8.2%) i/s - 253.308k ``` After: ``` $ bundle exec ruby -rbenchmark/ips persisted.rb Calculating ------------------------------------- persisted? 7.172k i/100ms ------------------------------------------------- persisted? 120.730k (± 5.1%) i/s - 602.448k ```
* | | | | remove useless instance variableAaron Patterson2015-03-021-9/+4
|/ / / / | | | | | | | | | | | | | | | | depth is always 0, so the index will always be false. No reason to create the instance variable if it isn't used
* | | | Move transaction code to transaction moduleArthur Neves2015-03-012-41/+41
| | | |
* | | | Remove parent transaction stateArthur Neves2015-03-012-7/+0
| | | | | | | | | | | | | | | | As far as I can tell nobody is setting this variable.
* | | | remove useless conditionalAaron Patterson2015-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | `@reflects_state[depth+1]` will always be nil because we haven't made a method call that would make it true yet.
* | | | Spell PostgreSQL correctly :elephant:Akira Matsuda2015-02-282-2/+2
| |/ / |/| | | | | | | | [ci skip]
* | | Removed non-standard and unused require 'active_support/deprecation' from ↵Vipul A M2015-02-271-1/+0
| | | | | | | | | | | | parts out of active_support.
* | | Properly create through records when called with `where`Sean Griffin2015-02-261-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various behaviors needed by associations (such as creating the through record) are lost when `where` is called, since we stop having a `CollectionProxy` and start having an `AssociationRelation` which does not contain this behavior. I *think* we should be able to rm `AssociationRelation`, but we have tests saying the changes required to do that would be bad (Without saying why. Of course. >_>) Fixes #19073.
* | | Add `SchemaMigration.create_table` support any unicode charsets for MySQL.Ryuta Kamizono2015-02-262-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MySQL unicode support is not only `utf8mb4`. Then, The index length problem is not only `utf8mb4`. http://dev.mysql.com/doc/refman/5.6/en/charset-unicode.html SELECT * FROM information_schema.character_sets WHERE maxlen > 3; +--------------------+----------------------+------------------+--------+ | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN | +--------------------+----------------------+------------------+--------+ | utf8mb4 | utf8mb4_general_ci | UTF-8 Unicode | 4 | | utf16 | utf16_general_ci | UTF-16 Unicode | 4 | | utf16le | utf16le_general_ci | UTF-16LE Unicode | 4 | | utf32 | utf32_general_ci | UTF-32 Unicode | 4 | +--------------------+----------------------+------------------+--------+
* | | Merge pull request #15476 from JacobEvelyn/masterRafael Mendonça França2015-02-251-0/+3
|\ \ \ | | | | | | | | | | | | Use logger environment settings in Rails console.
| * | | Use logger environment settings in Rails console.Jacob Evelyn2014-06-021-0/+3
| | | |
* | | | cache quoted column names in SQLite3Aaron Patterson2015-02-241-1/+2
| | | | | | | | | | | | | | | | we do this in other adapters, and it's a nice speed improvement
* | | | Merge pull request #19068 from pda/ar-translate-exception-class-no-logAaron Patterson2015-02-241-1/+0
|\ \ \ \ | | | | | | | | | | AR: translate_exception_class() no longer logs error.
| * | | | AR: translate_exception_class() no longer logs error.Paul Annesley2015-02-241-1/+0
| | |/ / | |/| |
* | | | Merge pull request #18936 from arthurnn/txn_callbacksArthur Nogueira Neves2015-02-243-4/+45
|\ \ \ \ | | | | | | | | | | Spike on new transaction callbacks
| * | | | Add before_commitArthur Neves2015-02-243-2/+25
| | | | | | | | | | | | | | | | | | | | [fixes #18903]
| * | | | Add transaction callbacks that wont enroll to the transaction.Arthur Neves2015-02-241-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add after_commit_without_transaction_enrollment and after_rollback_without_transaction_enrollment private callbacks so we can create after_commit and after_rollback callbacks without having the records automatic enrolled in the transaction. [fixes #18904]
* | | | | Merge pull request #17426 from jpcody/fixture_associations_fixAaron Patterson2015-02-241-0/+4
|\ \ \ \ \ | |_|/ / / |/| | | | Rely on through table name in has_many fixtures
| * | | | Rely on through table name in has_many fixturesJoshua Cody2014-10-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than using the association's join_table method, which constructs a table name from conventions, this should rely on the through reflection's table_name to be resilient to tables that were not automatically named.
* | | | | Tiny documentation edits [ci skip]Robin Dupret2015-02-242-4/+2
| | | | |
* | | | | Call `attributes_for_update` in `_update_record` w/ optimistic lockingSean Griffin2015-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | Fixes #19057
* | | | | Fix c479480638508c20601af69ca46b5b606c2d5b4d to account for from_value -> ↵Jeremy Kemper2015-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | from_clause in bdc5141652770fd227455681cde1f9899f55b0b9
* | | | | Merge pull request #18744 from mfazekas/no-table-name-with-fromRafael Mendonça França2015-02-241-5/+9
| | | | | | | | | | | | | | | | | | | | Fix appending table_name to select and group when used with subquery (fr...
* | | | | Fix mysql's schema.rb dumper so it does not include limit on emulated ↵Court3nay2015-02-241-0/+1
| | | | | | | | | | | | | | | | | | | | boolean tinyint(1) fields
* | | | | rework `disable_referential_integrity` for PostgreSQL.Yves Senn2015-02-241-9/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Toby Ovod-Everett & Andrey Nering & Yves Senn] Closes #17726. Closes #10939. This patch makes three distinct modifications: 1. no longer fall back to disabling user triggers if system triggers can't be disabled 2. warn the user when referential integrity can't be disabled 3. restore aborted transactions when referential integrity can't be disabled The motivation behind these changes is to make the behavior of Rails transparent and less error-prone. To require superuser privileges is not optimal but it's what Rails currently needs. Users who absolutely rely on disabling user triggers can patch `disable_referential_integrity`. We should investigate `SET CONSTRAINTS` as a possible solution which does not require superuser privileges. /cc @matthewd
* | | | | Move back `new_column_definition` into `TableDefinition`Ryuta Kamizono2015-02-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only `primary_key` should be extracted by d47357e in #19030, but `new_coclumn_definition` was also extracted because #17631 is merged previously, then #19030 is auto merged without conflicts. This commit is for move back `new_column_definition` into `TableDefinition`.
* | | | | Merge pull request #19030 from kamipo/extract_short_hand_column_methodsRafael Mendonça França2015-02-233-109/+139
|\ \ \ \ \ | | | | | | | | | | | | Extract the short-hand column methods into `ColumnMethods`
| * | | | | The short-hand methods should be able to define multiple columnsRyuta Kamizono2015-02-231-44/+50
| | | | | |
| * | | | | Extract the short-hand methods into `ColumnMethods`Ryuta Kamizono2015-02-231-23/+28
| | | | | |
| * | | | | Extract `primary_key` method into `ColumnMethods`Ryuta Kamizono2015-02-223-42/+61
| | | | | |
* | | | | | Merge pull request #17631 from kamipo/bigint_pk_supportRafael Mendonça França2015-02-231-0/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | Allow limit option for MySQL bigint primary key support.
| * | | | | | Allow `:limit` option for MySQL bigint primary key supportRyuta Kamizono2015-02-241-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: create_table :foos, id: :primary_key, limit: 8 do |t| end # or create_table :foos, id: false do |t| t.column :id, limit: 8 end
* | | | | | | Fix typo [ci skip]Luke Hutscal2015-02-231-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | I think this was supposed to be "roundTrip".
* / / / / / Require `belongs_to` by default.Josef Šimánek2015-02-215-9/+35
|/ / / / / | | | | | | | | | | | | | | | Deprecate `required` option in favor of `optional` for belongs_to.
* | | | | Fix #has_secure_token documentation [ci skip]Tim Liner2015-02-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | It's actually #validates_uniqueness_of that can generate a race condition rather than #validates_presence_of.
* | | | | Merge branch 'rm-take' into 4-1-stableRafael Mendonça França2015-02-202-0/+14
| | | | |
* | | | | Do not test, document or use a private API methodRafael Mendonça França2015-02-201-5/+0
| | | | | | | | | | | | | | | | | | | | These methods are nodoc so we should not document them.
* | | | | Merge pull request #16989 from Empact/reload-cache-clearRafael Mendonça França2015-02-205-26/+51
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Isolate access to @associations_cache and @aggregations_cache to the Associations and Aggregations modules, respectively.
| * | | | | Isolate access to @associations_cache and @aggregations cache to the ↵Ben Woosley2014-09-285-26/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Associations and Aggregations modules, respectively. This includes replacing the `association_cache` accessor with a more limited `association_cached?` accessor and making `clear_association_cache` and `clear_aggregation_cache` private.
* | | | | | Merge pull request #19018 from lucasmazza/lm-activemodel-validate-bangRafael Mendonça França2015-02-201-14/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Move the `validate!` method to `ActiveModel::Validations`.
| * | | | | | Move the `validate!` method to `ActiveModel::Validations`.Lucas Mazza2015-02-201-14/+2
| | | | | | |
* | | | | | | Merge pull request #16993 from Empact/simplify-find_by-statement-cacheRafael Mendonça França2015-02-201-16/+18
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | | | | | | | | Simplify find_by_statement_cache interaction
| * | | | | | Simplify `find_by_statement_cache` interaction down to a class-level ivar ↵Ben Woosley2014-09-221-20/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | with a single accessor `cached_find_by_statement`.
* | | | | | | Merge pull request #17139 from mfazekas/fix_becomes_changed_attributesRafael Mendonça França2015-02-201-1/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Always reset changed attributes in becomes
| * | | | | | | Always reset changed attributes in becomesMiklos Fazekas2015-02-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ```becomes``` changes @attributes it should also change @changed_attributes. Otherwise we'll experience a kind of split head situation where attributes are coming from ```self```, but changed_attributes is coming from ```klass.new```. This affects the inheritance_colmn as it's changed by new for example. Fixes #16881
* | | | | | | | Format the time string according to the precision of the time columnRyuta Kamizono2015-02-203-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is also necessary to format a time column like a datetime column.
* | | | | | | | Allow `:precision` option for time type columnsRyuta Kamizono2015-02-205-13/+19
| | | | | | | |
* | | | | | | | fix column name in migration example [ci skip]Daniël de Vries2015-02-191-1/+1
| | | | | | | |
* | | | | | | | Merge pull request #18916 from kamipo/handle_array_option_in_type_to_sqlRafael Mendonça França2015-02-192-37/+25
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Handle array option in `type_to_sql`