aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #17820 from fw42/restore_query_cache_on_rollbackRafael Mendonça França2015-01-027-9/+17
|\ | | | | | | Clear query cache on rollback
| * Restore query cache on rollbackFlorian Weingarten2014-12-017-9/+17
| |
* | Merge pull request #15309 from iantropov/issue_12698_build_throughRafael Mendonça França2015-01-021-0/+11
|\ \ | | | | | | | | | | | | | | | | | | | | | Add setting of FK for throgh associations while building Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/associations/has_many_through_associations_test.rb
| * | Add setting of FK for throgh associations while buildingIvan Antropov2014-05-251-0/+11
| | |
* | | Merge pull request #18228 from kamipo/correctly_dump_primary_keyRafael Mendonça França2015-01-025-5/+43
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Improve a dump of the primary key support. Conflicts: activerecord/CHANGELOG.md
| * | | Improve a dump of the primary key support.Ryuta Kamizono2014-12-295-5/+43
| | | | | | | | | | | | | | | | If it is not a default primary key, correctly dump the type and options.
* | | | Remove support to activerecord-deprecated_findersRafael Mendonça França2015-01-0212-124/+62
| | | |
* | | | Merge pull request #18067 from ↵Rafael Mendonça França2015-01-021-0/+28
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | kamipo/format_datetime_string_according_to_precision Format the datetime string according to the precision of the datetime field. Conflicts: activerecord/CHANGELOG.md
| * | | | Format the datetime string according to the precision of the datetime field.Ryuta Kamizono2015-01-021-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Incompatible to rounding behavior between MySQL 5.6 and earlier. In 5.5, when you insert `2014-08-17 12:30:00.999999` the fractional part is ignored. In 5.6, it's rounded to `2014-08-17 12:30:01`: http://bugs.mysql.com/bug.php?id=68760
| * | | | Allow precision option for MySQL datetimes.Ryuta Kamizono2015-01-021-0/+12
| | | | |
* | | | | Merge pull request #15746 from amccloud/auto-inverse_of-in-moduleRafael Mendonça França2015-01-021-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed automatic inverse_of for models nested in module Conflicts: activerecord/CHANGELOG.md
| * | | | | Fixed automatic inverse_of for models nested in moduleAndrew McCloud2014-06-151-1/+1
| | | | | |
* | | | | | Merge pull request #11898 from prathamesh-sonpatki/patch-updateRafael Mendonça França2015-01-021-1/+13
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changed ActiveRecord::Relation#update behavior so that it will work on Relation objects without giving id Conflicts: activerecord/CHANGELOG.md
| * | | | | Allow ActiveRecord::Relation#update to run on result of a relation with ↵Prathamesh Sonpatki2014-12-201-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | callbacks and validations - Right now, there is no method to update multiple records with validations and callbacks. - Changed the behavior of existing `update` method so that when `id` attribute is not given and the method is called on an `Relation` object, it will execute update for every record of the `Relation` and will run validations and callbacks for every record. - Added test case for validating that the callbacks run when `update` is called on a `Relation`. - Changed test_create_columns_not_equal_attributes test from persistence_test to include author_name column on topics table as it it used in before_update callback. - This change introduces performance issues when a large number of records are to be updated because it runs UPDATE query for every record of the result. The `update_all` method can be used in that case if callbacks are not required because it will only run single UPDATE for all the records.
* | | | | | Merge pull request #18080 from korbin/fix_reaping_frequency_configurationRafael Mendonça França2015-01-021-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Fix issue with reaping_frequency type.
| * | | | | | fix issue with reaping_frequency typekorbin2014-12-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using DATABASE_URL to configure ActiveRecord, :reaping_frequency does not get converted from a string to a numeric value. This value is eventually passed to 'sleep' and must be numeric to avoid exceptions. This commit converts :reaping_frequency to a float when present.
* | | | | | | Do not check only for the Rails constantRafael Mendonça França2015-01-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This constant may be define for auxiliar gems like rails-html-sanitizer and these methods call will fail.
* | | | | | | 💣 I forgot to commit the arity changeSean Griffin2015-01-011-1/+1
| | | | | | |
* | | | | | | Don't rely on the column for type information in uniquness validationsSean Griffin2015-01-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The validator has access to richer type information
* | | | | | | Don't load an entire table into memory to copy it on SQLiteSean Griffin2015-01-011-15/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | SQL has mechanisms we can use to copy data from one table into another.
* | | | | | | Stop using the column for type information in sanitizationSean Griffin2015-01-011-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we move towards removing the types from the column objects, any remaining places which have access to richer type information should be using it.
* | | | | | | Stop passing the column to the connection adapter when quoting defaultsSean Griffin2015-01-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The column is no longer used for anything besides type casting, which is what we're trying to remove from the column entirely.
* | | | | | | Extract the index length validation to a auxiliar methodRafael Mendonça França2014-12-303-9/+12
| | | | | | |
* | | | | | | Merge pull request #18264 from yahonda/rename_index_mysqlRafael Mendonça França2014-12-301-0/+3
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Raise a better exception for renaming long indexes for mysql adapters
| * | | | | | | Raise a better exception for renaming long indexes for mysql adaptersYasuo Honda2014-12-301-0/+3
| | | | | | | |
* | | | | | | | Fix error message when trying to create an associated recordRafael Mendonça França2014-12-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This error only happens when the foreign key is missing. Before this fix the following exception was being raised: NoMethodError: undefined method `val' for #<Arel::Nodes::BindParam:0x007fc64d19c218> Now the message is: ActiveRecord::UnknownAttributeError: unknown attribute 'foreign_key' for Model.
* | | | | | | | Share foreign_key_present? implementation in _has_ associationsbrainopia2014-12-314-8/+14
|/ / / / / / /
* | | | | | | Merge pull request #17680 from larskanis/fix_bytea_change_detectionSean Griffin2014-12-301-0/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | PostgreSQL, Fix change detection caused by superfluous bytea unescaping
| * | | | | | | PostgreSQL, Fix change detection caused by wrong data for bytea unescaping.Lars Kanis2014-12-291-0/+1
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This showed up when running BinaryTest#test_load_save with the more restrictive input string handling of pg-0.18.0.pre20141117110243.gem . Bytea values sent to the server are in binary format, but are returned back as escaped text. To fulfill the assumption that type_cast_from_database(type_cast_for_database(binary)) == binary we unescape only, if the value was really received from the server.
* | | | | | | Ensures that primary_key method will return nil when multi-pkArthur Neves2014-12-302-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When table has a composite primary key, the `primary_key` method for sqlite3 and postgresql was only returning the first field of the key. Ensures that it will return nil instead, as AR dont support composite pks.
* | | | | | | Tiny documentation fixes [ci skip]Robin Dupret2014-12-301-1/+1
| | | | | | |
* | | | | | | AR specific length validator to respect `marked_for_destruction`.Yves Senn2014-12-302-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #7247. Conflicts: activerecord/CHANGELOG.md activerecord/test/models/owner.rb
* | | | | | | Add doc for `:touch` option of AR::Base#saveclaudiob2014-12-301-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActiveRecord::Base `save` and `save!` take an option boolean `:touch` parameter since #18225 (stems from #18202). This commit document that parameter. [ci skip]
* | | | | | | Ensure `first!` and friends work on loaded associationsSean Griffin2014-12-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #18237
* | | | | | | Remove all cases of manuallly wrapping `Arel::Nodes::Quoted`Sean Griffin2014-12-293-21/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is no longer required now that we are injecting a type caster object into the Arel table, with the exception of uniqueness validations. Since it calls `ConnectionAdapter#type_cast`, the value has already been cast for the database. We don't want Arel to attempt to cast it further, so we need to continue wrapping it in a quoted node. This can potentially go away when this validator is refactored to make better use of `where` or the predicate builder.
* | | | | | | Pass a type caster when aliasing tables for joinsSean Griffin2014-12-294-10/+15
| | | | | | |
* | | | | | | Extract an explicit type caster classSean Griffin2014-12-298-39/+69
| | | | | | |
* | | | | | | Rely on the injectable type caster for `arel_table`Sean Griffin2014-12-296-74/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This API will require much less consuming code to change to accomodate the removal of automatic type casting from Arel. As long as the predicates are constructed using the `arel_table` off of an AR subclass, there will be no changes that need to happen.
* | | | | | | Merge pull request #18097 from k0kubun/readonly-eager_loadRafael Mendonça França2014-12-291-0/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | `eager_load` preserves readonly flag for associations
| * | | | | | | `eager_load` preserves readonly flag for associationsTakashi Kokubun2014-12-301-0/+1
| |/ / / / / /
* / / / / / / Add nodoc to touch at no_touching.rbRafael Mendonça França2014-12-291-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is already docummented at persistence.rb. [ci skip]
* | | | | | Minor documentation edits [ci skip]Robin Dupret2014-12-281-6/+5
| | | | | |
* | | | | | Fix warning: `*' interpreted as argument prefixRyuta Kamizono2014-12-281-1/+1
| | | | | |
* | | | | | Provide :touch option to save() to accommodate saving without updating ↵Dan Olson2014-12-273-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | timestamps. [#18202]
* | | | | | Provide a better error message for unsupported classes in `serialize`Sean Griffin2014-12-271-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only support classes which provide a no-args constructor to use as a default value. We can provide a more helpful error message if we catch this when `serialize` is called, rather than letting it error when you try to assign the attribute. Fixes #18224
* | | | | | Add bigint primary key support for MySQL.Ryuta Kamizono2014-12-283-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: create_table :foos, id: :bigint do |t| end
* | | | | | Support for any type primary key.Ryuta Kamizono2014-12-282-10/+5
| | | | | |
* | | | | | add autoload for `ForeignKeyDefinition`.Yves Senn2014-12-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | /cc @sgrif
* | | | | | reduce duplication in `ConnectionAdapters::Table` docs. [ci skip]Yves Senn2014-12-271-27/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the documentation very closely mirrors the matching docs from `SchemaStatements`. I reduced duplicated copy and added links to the underlying methods for the user to follow.
* | | | | | Refactor `PostgreSQL::TableDefinition#primary_key`Ryuta Kamizono2014-12-271-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because call the `column` method and set the `options[:primary_key]` is handled at `super`, here need only treat the `options[:default]`.