aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | get rid of transaction warning when running PG tests.Yves Senn2015-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | This finally removes the warning "WARNING: there is no transaction in progress" when running Active Record tests using PostgreSQL.
* | | | pg tests, be clear about the missing type that causes a test skip.Yves Senn2015-02-122-15/+8
| | | | | | | | | | | | | | | | Also removed some cruft in the `setup` and `teardown` methods.
* | | | tests, remove unused requires.Yves Senn2015-02-122-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | "active_support/testing/stream" is already required in `test_case.rb`. Furthermore the test "test/cases/migration_test.rb" could no longer be executed directly.
* | | | Schema creation doesn't load the appTamir Duberstein2015-02-111-1/+1
|/ / /
* | | Don't break enum on PGSean Griffin2015-02-111-1/+1
| | |
* | | Refactor enum to be defined in terms of the attributes APISean Griffin2015-02-113-44/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to cleaning up the implementation, this allows type casting behavior to be applied consistently everywhere. (#where for example). A good example of this was the previous need for handling value to key conversion in the setter, because the number had to be passed to `where` directly. This is no longer required, since we can just pass the string along to where. (It's left around for backwards compat) Fixes #18387
* | | `current_scope` shouldn't pollute sibling STI classesSean Griffin2015-02-114-6/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It looks like the only reason `current_scope` was thread local on `base_class` instead of `self` is to ensure that when we call a named scope created with a proc on the parent class, it correctly uses the default scope of the subclass. The reason this wasn't happening was because the proc captured `self` as the parent class, and we're not actually defining a real method. Using `instance_exec` fixes the problem. Fixes #18806
* | | Merge pull request #18888 from kamipo/refactor_quote_default_expressionRafael Mendonça França2015-02-114-18/+12
|\ \ \ | | | | | | | | Refactor `quote_default_expression`
| * | | Refactor `quote_default_expression`Ryuta Kamizono2015-02-114-18/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `quote_default_expression` and `quote_default_value` are almost the same handling for do not quote default function of `:uuid` columns. Rename `quote_default_value` to `quote_default_expression`, and remove duplicate code.
* | | | Remove the SQLite3 Binary subclassSean Griffin2015-02-112-28/+0
| | | | | | | | | | | | | | | | | | | | | | | | As far as I can tell, the original reason that this behavior was added has been sufficiently resolved elsewhere, as we no longer remove the encoding of strings coming out of the database.
* | | | Remove an unused option that I didn't mean to commit [ci skip]Sean Griffin2015-02-111-2/+1
| | | |
* | | | Remove most PG specific type subclassesSean Griffin2015-02-1113-90/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The latest version of the PG gem can actually convert the primitives for us in C code, which gives a pretty substantial speed up. A few cases were only there to add the `infinity` method, which I just put on the range type (which is the only place it was used). Floats also needed to parse `Infinity` and `NaN`, but it felt reasonable enough to put that on the generic form.
* | | | Merge pull request #18883 from ↵Sean Griffin2015-02-113-23/+46
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kamipo/fix_datetime_precision_dumping_zero_for_postgresql The datetime precision with zero should be dumped
| * | | | The datetime precision with zero should be dumpedRyuta Kamizono2015-02-113-23/+46
| |/ / / | | | | | | | | | | | | | | | | `precision: 0` was not dumped by f1a0fa9e19b7e4ccaea191fc6cf0613880222ee7. However, `precision: 0` is valid value for PostgreSQL timestamps.
* | | | prefer `drop_table :table, if_exists: true` over explicit checks.Yves Senn2015-02-111-2/+2
| | | |
* | | | add test to ensure `remove_reference` with index and fk is invertable.Yves Senn2015-02-111-0/+5
| | | |
* | | | fix `remove_reference` with `foreign_key: true` on MySQL. #18664.Yves Senn2015-02-113-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MySQL rejects to remove an index which is used in a foreign key constraint: ``` ActiveRecord::StatementInvalid: Mysql2::Error: Cannot drop index 'index_copies_on_title_id': needed in a foreign key constraint: ALTER TABLE `copies` DROP `title_id` ``` Removing the constraint before removing the column (and the index) solves this problem.
* | | | Merge pull request #18890 from kamipo/remove_cast_typeYves Senn2015-02-111-1/+1
|\ \ \ \ | | | | | | | | | | Remove `cast_type` in `ColumnDefinition`
| * | | | Remove `cast_type` in `ColumnDefinition`Ryuta Kamizono2015-02-111-1/+1
| |/ / / | | | | | | | | | | | | This is no longer needed.
* / / / Use keyword argument in `transaction`Ryuta Kamizono2015-02-111-6/+4
|/ / / | | | | | | | | | | | | The keys are already validated, so it is better to use the built-in feature to do this.
* | | Merge pull request #18877 from prathamesh-sonpatki/ar-changelog-typos-2Rafael Mendonça França2015-02-101-2/+2
|\ \ \ | | | | | | | | Fixed typos in ActiveRecord CHANGELOG [ci skip]
| * | | Fixed typos in ActiveRecord CHANGELOG [ci skip]Prathamesh Sonpatki2015-02-111-2/+2
| | | |
* | | | Merge pull request #12257 from vipulnsward/end_on_find_in_batchesRafael Mendonça França2015-02-103-12/+36
|\ \ \ \ | |/ / / |/| | | Add an option `end` to `find_in_batches`
| * | | Add an option `end_at` to `find_in_batches`Vipul A M2015-02-093-12/+36
| | | | | | | | | | | | | | | | that complements the `start`parameter to specify where to stop batch processing
* | | | Refactor microsecond precision to be database agnosticSean Griffin2015-02-1011-84/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The various databases don't actually need significantly different handling for this behavior, and they can achieve it without knowing about the type of the object. The old implementation was returning a string, which will cause problems such as breaking TZ aware attributes, and making it impossible for the adapters to supply their logic for time objects.
* | | | Merge pull request #18860 from ↵Rafael Mendonça França2015-02-101-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | alex-handley/enhancement/dependent_documentation_fix Documentation Fix: Corrects explanation of what happens when dependent is not set
| * | | | [ci skip] corrects documentation for the default dependent behaviourAlex Handley2015-02-091-1/+1
| |/ / / | | | | | | | | | | | | | | | | By default the foreign key will remain set with the parent id after destroy is fired.
* | | | Maintain a consistent order in `ActiveRecord::Base#attributes`Sean Griffin2015-02-102-1/+21
| | | | | | | | | | | | | | | | Fixes #18871
* | | | Change `LockingType` to use `DelegateClass`Sean Griffin2015-02-091-1/+1
| | | | | | | | | | | | | | | | Significantly faster than `SimpleDelegator`.
* | | | Merge pull request #18849 from kamipo/array_type_is_a_part_of_sql_typeSean Griffin2015-02-092-19/+4
|\ \ \ \ | |/ / / |/| | | An array type is a part of `sql_type`
| * | | An array type is a part of `sql_type`Ryuta Kamizono2015-02-082-19/+4
| | | | | | | | | | | | | | | | | | | | | | | | `sql_type` is reused in `lookup_cast_type`. If making it a part of `sql_type` when handled array option first, it isn't necessary to do again.
* | | | Remove debug codeCarlos Antonio da Silva2015-02-081-5/+0
| | | | | | | | | | | | | | | | Added by 101c19f55f5f1d86d35574b805278f11e9a1a48e.
* | | | Fix rounding problem for PostgreSQL timestamp columnRyuta Kamizono2015-02-085-19/+50
| | | | | | | | | | | | | | | | | | | | If timestamp column have the precision, it need to format according to the precision of timestamp column.
* | | | Merge pull request #18602 from kamipo/respect_database_charset_and_collationAndrew White2015-02-083-5/+21
|\ \ \ \ | | | | | | | | | | Respect the database default charset for `schema_migrations` table.
| * | | | Respect the database default charset for `schema_migrations` table.Ryuta Kamizono2015-02-083-5/+21
| |/ / / | | | | | | | | | | | | | | | | | | | | The charset of `version` column in `schema_migrations` table is depend on the database default charset and collation rather than the encoding of the connection.
* | | | Merge pull request #18848 from kamipo/add_auto_increment_methodAndrew White2015-02-082-3/+7
|\ \ \ \ | | | | | | | | | | Add `auto_increment?` instead of `extra == 'auto_increment'`
| * | | | Add `auto_increment?` instead of `extra == 'auto_increment'`Ryuta Kamizono2015-02-082-3/+7
| |/ / /
* | | | Merge pull request #18851 from kamipo/remove_unused_lineAndrew White2015-02-081-1/+0
|\ \ \ \ | | | | | | | | | | Remove unused line
| * | | | Remove unused lineRyuta Kamizono2015-02-081-1/+0
| |/ / /
* / / / Missing `@` [ci skip]Ryuta Kamizono2015-02-081-1/+1
|/ / /
* | | rm `Type#number?`Sean Griffin2015-02-0717-29/+1
| | | | | | | | | | | | | | | This predicate is only used in `query_attribute`, and is relatively easy to remove without adding a bunch of is a checks.
* | | rm `Type#text?`Sean Griffin2015-02-076-14/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This predicate was only to figure out if it's safe to do case insensitive comparison, which is only a problem on PG. Turns out, PG can just tell us whether we are able to do it or not. If the query turns out to be a problem, let's just replace that method with checking the SQL type for `text` or `character`. I'd rather not burden the type objects with adapter specific knowledge. The *real* solution, is to deprecate this behavior entirely. The only reason we need it is because the `:case_sensitive` option for `validates_uniqueness_of` is documented as "this option is ignored for non-strings". It makes no sense for us to do that. If the type can't be compared in a case insensitive way, the user shouldn't tell us to do case insensitive comparison.
* | | Move non-type objects into the `Type::Helpers` namespaceSean Griffin2015-02-0719-104/+110
| | | | | | | | | | | | | | | | | | | | | The type code is actually quite accessible, and I'm planning to encourage people to look at the files in the `type` folder to learn more about how it works. This will help reduce the noise from code that is less about type casting, and more about random AR nonsense.
* | | rm `ActiveRecord::Type::Decorator`Sean Griffin2015-02-074-28/+0
| | | | | | | | | | | | | | | | | | | | | It only existed to make sure the subclasses of `Delegator` were YAML serializable. As of Ruby 2.2, these are YAML dumpable by default, as it includes https://github.com/tenderlove/psych/commit/2a4d9568f7d5d19c00231cf48eb855cc45ec3394
* | | Push multi-parameter assignement into the typesSean Griffin2015-02-0712-108/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to remove `Type::Value#klass`, as it was only used for multi-parameter assignment to reach into the types internals. The relevant type objects now accept a hash in addition to their previous accepted arguments to `type_cast_from_user`. This required minor modifications to the tests, since previously they were relying on the fact that mulit-parameter assignement was reaching into the internals of time zone aware attributes. In reaility, changing those properties at runtime wouldn't change the accessor methods for all other forms of assignment.
* | | Document the usage of the default option to attributeSean Griffin2015-02-061-0/+14
| | |
* | | A symbol can be passed to `attribute`, which should be documentedSean Griffin2015-02-061-3/+4
| | |
* | | Grammar and RDoc formattingSean Griffin2015-02-062-35/+37
| | |
* | | Docs pass for the attributes APISean Griffin2015-02-062-39/+154
| | |
* | | Raise ArgumentError when passing nil to Relation#mergeRafael Mendonça França2015-02-063-1/+24
| | | | | | | | | | | | | | | | | | nil or false should not be valid argument to the merge method. Closes #12264