| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
In Active Record, it appears these were either autoloaded, which
actually was likely due to test ordering since the method `Float#to_d`
wouldn't trigger it. This makes it explicit, and unlikely to fail in the
future.
|
|
|
|
|
|
|
| |
We should probably review the usage of these constants and decide
whether we want to be more transparent about which things come from
Active Model vs Active Record, as this is meaningful information as to
whether there is database specific behavior or not.
|
|
|
|
|
|
| |
The `override` option is only a thing for Active Record registrations.
We should figure out how to make this properly error out without doing
anything too weird to the code.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move ActiveRecord::Type to ActiveModel
The intention has always been to move the attributes API off of Active
Record and onto Active Model. This is the first step in that transition.
This merges the pull request (which has been squashed and rebased), with
various changes to the code to get the quality to a level which is
acceptable to merge.
Close #21533
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Any tests for a type which is not overridden by Active Record, and does
not test the specifics of the attributes API interacting in more complex
ways have no reason to be in the Active Record suite. Doing this
revealed that the implementation of the date and time types in AM was
actually completely broken, and incapable of returning any value other
than `nil`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Things like decorations, overrides, and priorities only matter for
Active Record, so the Active Model registry can be implemented much more
simply. At this point, I wonder if having Active Record's registry
inherit from Active Model's is even worth the trouble?
The Active Model class was also missing test cases, which have been
backfilled.
This removes the error when two types are registered with the same name,
but given that Active Model is meant to be significantly more generic, I
do not think this is an issue for now. If we want, we can raise an error
at the point that someone tries to register it.
|
| |
| |
| |
| |
| |
| |
| | |
We do not need to require each file from AM individually, the type
module does that for us. Even if the classes are extremely small right
now, I'd rather keep any custom classes needed by AR in their own files,
as they can easily have more complex changes in the future.
|
| |
| |
| |
| |
| |
| | |
These are used by the connection adapters to convert SQL type
information into the appropriate type object, and makes no sense outside
of the context of Active Record
|
|/
|
|
| |
The first step of bringing typecasting to ActiveModel
|
|\
| |
| | |
Removed unused parameter `options` for `register_detail` method
|
| |
| |
| | |
This method is only called with name & block.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The INITIAL_WAIT constant has moved to the Sidekiq::Poller class but
rather than setting the constant directly we can override it via the
`:poll_interval_average` option.
This was causing random build failures because the test was waiting
for 10 seconds for the job to execute but the initial wait was a
random value between 10 and 15 seconds.
|
| |
| |
| |
| |
| |
| | |
If db/schema.rb doesn't exist then we get warnings from the dummy Rails
application so run it for all adapters even if they're not using the
database to store jobs.
|
| | |
|
| |
| |
| |
| |
| | |
Since `alias_method_chain` is deprecated we need to use the master version
of the Turbolinks gem as it has support for using `Module#prepend`.
|
| |
| |
| |
| |
| |
| |
| | |
The concept of a blank date or time doesn't make sense so we can short
circuit the calls for `blank?` on these classes to gain small speed boost.
Fixes #21657
|
|\ \
| | |
| | | |
Applying right result of examples in ActiveSupport Multibyte [ci skip]
|
| | | |
|
|\ \ \
| | | |
| | | | |
Add title for key lengths for multiple keys.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously there was no separator between the two code examples so it looked like:
```ruby
CREATE INDEX by_name ON accounts(name(10))
add_index(:accounts, [:name, :surname], name: 'by_name_surname', length: {name: 10, surname: 15})
```
|
|\ \ \ \
| | | | |
| | | | | |
Docs typo: missing `end` in routing.rb
|
| | | | |
| | | | |
| | | | | |
forgotten end of the block
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Support for foreign keys in create table
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If foreign keys specified in create table, generated SQL is slightly more
efficient.
Definition:
```
create_table :testings do |t|
t.references :testing_parent, foreign_key: true
end
```
Before:
```
CREATE TABLE "testings" ("id" serial primary key, "testing_parent_id" integer);
ALTER TABLE "testings" ADD CONSTRAINT "fk_rails_a196c353b2" FOREIGN KEY ("testing_parent_id") REFERENCES "testing_parents" ("id");
```
After:
```
CREATE TABLE "testings" ("id" serial primary key, "testing_parent_id" integer, CONSTRAINT "fk_rails_a196c353b2" FOREIGN KEY ("testing_parent_id") REFERENCES "testing_parents" ("id"));
```
|
|\ \ \ \
| |_|/ /
|/| | | |
Refactor `table_exists?` in AbstractMysqlAdapter
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
`table_exists?` calls `tables` twice when passed `'dbname.tblname'` arg.
This change is that `table_exists?` execute only once query always and
extra args of `tables` is removed.
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
y-yagi/fix_application_controller_require_dependency_path
fix application_controller require_dependency path generated by the scaffold generator
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
generator
This is follow up to #6643.
In #6643, the controller generator only had been fixed, in this commit to fix the scaffold generator.
|
|\ \ \
| | | |
| | | | |
fix `to_time` output in ActiveSupport guide.
|
|/ / /
| | |
| | |
| | |
| | | |
https://github.com/rails/rails/commit/48583f8bf74d1cefefea3cd6591bd546a9eaff6c , to_time returns times formatted as YYYY-MM-DD HH:MM:SS UTC [ci skip]
`to_time` method returns in `YYYY-MM-DD HH:MM:SS UTC` format after this commit https://github.com/rails/rails/commit/48583f8bf74d1cefefea3cd6591bd546a9eaff6c .
|
|\ \ \
| | | |
| | | | |
correcting word smpt -> smtp in ActionMailer guide [ci skip]
|
|/ / /
| | |
| | | |
`smpt.gmail.com` should be `smtp.gmail.com`
|
|\ \ \
| |/ /
|/| | |
remove association reload option from guide [ci skip]
|
|/ /
| |
| |
| | |
The option was deprecated in 6eae366d0d2e5d5211eeaf955f56bd1dc6836758
|
|\ \
| | |
| | |
| | | |
Add `unsigned` support for numeric data types in MySQL
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In the case of using `unsigned` as the type:
create_table :foos do |t|
t.unsigned_integer :unsigned_integer
t.unsigned_bigint :unsigned_bigint
t.unsigned_float :unsigned_float
t.unsigned_decimal :unsigned_decimal, precision: 10, scale: 2
end
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Example:
create_table :foos do |t|
t.integer :unsigned_integer, unsigned: true
t.bigint :unsigned_bigint, unsigned: true
t.float :unsigned_float, unsigned: true
t.decimal :unsigned_decimal, unsigned: true, precision: 10, scale: 2
end
|
|\ \ \
| | | |
| | | |
| | | | |
Move `explain` into `AbstractMysqlAdapter`
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Common methods in both mysql adapters are should be added to
`AbstractMysqlAdapter`, but some methods had been added to
`Mysql2Adapter`. (8744632f, 0306f82e, #14359)
Some methods already moved from `Mysql2Adapter` to
`AbstractMysqlAdapter`. (#17601, #17998)
Common methods in both mysql adapters are remaining only the `explain`
method in `Mysql2Adapter`.
|
|\ \ \ \
| | | | |
| | | | | |
Fix undesired type lookup with `SET` in MySQL
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit fixes the following problems:
* cause infinit type lookup loop when SET includes aliased types
* For example:
when SET('set') includes aliased type `set`,
then aliased `varchar('set')` by type lookup,
but type lookup infinit matching same rule.
* cause type lookup miss when SET includes registered types
* For example:
when SET('time') includes registered type `time`,
then aliased `varchar('time')` by type lookup,
then matching `time` type.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/eliminate_duplicated_visit_table_definition
Eliminate the duplication code of `visit_TableDefinition`
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
Do not dump a view as a table in sqlite3, mysql and mysql2 adapters
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Now in sqlite3, mysql and mysql2 adapters, SchemaDumper dump a view as
a table. It is incorrect behavior. This change excludes a view in
schema.rb.
|