- 16 9月, 2015 1 次提交
-
-
由 Ryuta Kamizono 提交于
The **(11)** does not affect the storage size of the data type, which for an INT will always be 4 bytes. It affects the **display width**. http://www.tocker.ca/2015/07/02/proposal-to-deprecate-mysql-integer-display-width-and-zerofill.html
-
- 04 5月, 2015 1 次提交
-
-
由 Ryuta Kamizono 提交于
Some databases like MySQL allow defining collation charset for specific columns.
-
- 06 3月, 2015 1 次提交
-
-
由 Ryuta Kamizono 提交于
Example: create_table :foos do |t| t.string :string_utf8_bin, charset: 'utf8', collation: 'utf8_bin' t.text :text_ascii, charset: 'ascii' end
-
- 04 3月, 2015 2 次提交
-
-
由 Ryuta Kamizono 提交于
-
由 Ryuta Kamizono 提交于
-
- 04 2月, 2015 1 次提交
-
-
由 Sean Griffin 提交于
The type from the column is never used, except when being passed to the attributes API. While leaving the type on the column wasn't necessarily a bad thing, I worry that it's existence there implies that it is something which should be used. During the design and implementation process of the attributes API, there have been plenty of cases where getting the "right" type object was hard, but I had easy access to the column objects. For any contributor who isn't intimately familiar with the intents behind the type casting system, grabbing the type from the column might easily seem like the "correct" thing to do. As such, the goal of this change is to express that the column is not something that should be used for type casting. The only places that are "valid" (at the time of this commit) uses of acquiring a type object from the column are fixtures (as the YAML file is going to mirror the database more closely than the AR object), and looking up the type during schema detection to pass to the attributes API Many of the failing tests were removed, as they've been made obsolete over the last year. All of the PG column tests were testing nothing beyond polymorphism. The Mysql2 tests were duplicating the mysql tests, since they now share a column class. The implementation is a little hairy, and slightly verbose, but it felt preferable to going back to 20 constructor options for the columns. If you are git blaming to figure out wtf I was thinking with them, and have a better idea, go for it. Just don't use a type object for this.
-
- 03 2月, 2015 1 次提交
-
-
由 Sean Griffin 提交于
Now that type casting has nothing to do with columns, our only usage of this method is gone.
-
- 31 1月, 2015 1 次提交
-
-
由 Sean Griffin 提交于
Remaining are `limit`, `precision`, `scale`, and `type` (the symbol version). These will remain on the column, since they mirror the options to the `column` method in the schema definition DSL
-
- 04 1月, 2015 3 次提交
-
-
由 Rafael Mendonça França 提交于
Before this change we had a small set of "truthy", and all others are "falsy". Now, we have a small set of "falsy" values and all others are "truthy" matching Ruby's semantics.
-
由 Rafael Mendonça França 提交于
This reverts commit ae96f229. Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/attribute_methods.rb
-
由 Ryuta Kamizono 提交于
Slightly refactoring `PostgreSQLColumn`. `array` should be readonly. `default_function` should be initialized by `super`. `sql_type` has been removed `[]`. Since we already choose to remove it we should not change.
-
- 27 12月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
I think we should deprecate this behavior and just error if you tell us to do a case insensitive comparison for types which are not case sensitive. Partially reverts 35592307 Fixes #18195
-
- 29 10月, 2014 3 次提交
-
-
由 Sean Griffin 提交于
-
由 Sean Griffin 提交于
The query cache uses bind values as hash keys. The current implementation relies on reference equality for hash equality. This is brittle, and can easily break in the future.
-
由 Sean Griffin 提交于
We shouldn't rely on reference equality of these objects in tests
-
- 05 8月, 2014 1 次提交
-
-
由 Carlos Antonio da Silva 提交于
The method has been removed in 09206716 (PR #16074), but the delegation was apparently missed, and one instance of the method was added back with the addition of OID::Xml in 336be2bd (PR #16072), so we can safely rm both.
-
- 23 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
This is public API, and `simple_form` depends on the `nil` return value. We need to go through a deprecation cycle to return a null object. If people want hash access, they can access the hash.
-
- 18 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
If we want to have type decorators mess with the attribute, but not the column, we need to stop type casting on the column. Where possible, we changed the tests to test the value of `column_defaults`, which is public API. `Column#default` is not.
-
- 14 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
-
- 11 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
We are no longer including column objects in YAML serialization, thanks to https://github.com/rails/rails/pull/15621
-
- 10 6月, 2014 3 次提交
-
-
由 Sean Griffin 提交于
On MySQL and PostgreSQL, the adapter does not type cast virtual columns for us.
-
由 Sean Griffin 提交于
In some cases there is a difference between the two, we should always be doing one or the other. For convenience, `type_cast` is still a private method on type, so new types that do not need different behavior don't need to implement two methods, but it has been moved to private so it cannot be used accidentally.
-
由 Sean Griffin 提交于
- The following is now true for all types, all the time - `model.attribute_before_type_cast == given_value` - `model.attribute == model.save_and_reload.attribute` - `model.attribute == model.dup.attribute` - `model.attribute == YAML.load(YAML.dump(model)).attribute` - Removes the remaining types implementing `type_cast_for_write` - Simplifies the implementation of time zone aware attributes - Brings tz aware attributes closer to being implemented as an attribute decorator - Adds additional point of control for custom types
-
- 07 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
We need to decorate the types lazily. This is extracted to a separate API, as there are other refactorings that will be able to make use of it, and to allow unit testing the finer points more granularly.
-
- 05 6月, 2014 1 次提交
-
-
由 Yves Senn 提交于
Follow up to #15438 and #15502. /cc @sgrif
-
- 04 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
The contract of `_field_changed?` assumes that the old value is always type cast. That is not the case for the value in `Column#default` as things are today. It appears there are other public methods that assume that `Column#default` is type cast, as well. The reason for this change originally was because the value gets put into `@raw_attributes` in initialize. This reverts to the old behavior on `Column`, and updates `initialize` to make sure that the values are in the right format.
-
- 03 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
The types know more about what is going on than the dirty module. Let's ask them!
-
- 02 6月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
Nearly completely implemented in terms of custom properties. `_before_type_cast` now stores the raw serialized string consistently, which removes the need to keep track of "state". The following is now consistently true: - `model.serialized == model.reload.serialized` - A model can be dumped and loaded infinitely without changing - A model can be saved and reloaded infinitely without changing
-
- 30 5月, 2014 3 次提交
-
-
由 Yves Senn 提交于
This removes the case statement in `SchemaDumper` and gives every `Type` the possibility to control the SchemaDumper default value output. /cc @sgrif
-
由 Sean Griffin 提交于
-
由 Sean Griffin 提交于
Many of the methods defined in `AttributeMethods::Serialization` can be refactored onto this type as well, but this is a reasonable small step. Removes the `Type` class, and the need for `decorate_columns` to handle serialized types.
-
- 28 5月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
It appears this property was added, but never actually used. It would be broken if it were, as it only type casts one way.
-
- 26 5月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
Adds the ability to save custom types, which type cast to non-primitive ruby objects.
-
- 24 5月, 2014 1 次提交
-
-
由 Sean Griffin 提交于
It appears to have been used at some point in the past, but is no longer used in any meaningful way. Whether a column is considered primary is a property of the model, not the schema/column. This also removes the need for yet another layer of caching of the model's schema, and we can leave that to the schema cache.
-
- 23 5月, 2014 4 次提交
-
-
由 Sean Griffin 提交于
Columns and injected types no longer have any conditionals based on the format of SQL type strings! Hooray!
-
由 Sean Griffin 提交于
-
由 Sean Griffin 提交于
Ideally types will be usable without having to specify a sql type string, so we should keep the information related to parsing them on the adapter or another object.
-
-
- 21 5月, 2014 2 次提交
-
-
由 Yves Senn 提交于
- `extract_precision`, `extract_limit`, and `extract_default` probably need to follow. - would be good to remove the delegation `Column#extract_scale`. /cc @sgrif
-
由 Sean Griffin 提交于
-