| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Consolidate database specific JSON types to `Type::Json`
|
| | |
|
|\ \
| | |
| | | |
Fix `default_scoped` with defined `default_scope` on STI model
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This regression is caused by d1249c1.
If STI model is defined `default_scope`, `base_rel` is not respected.
I fixed to merge `base_rel` in that case.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Follow up of #29077.
Before:
```sql
SELECT sql FROM sqlite_master WHERE tbl_name NOT IN ("foo") ORDER BY tbl_name, type DESC, name
```
After:
```sql
SELECT sql FROM sqlite_master WHERE tbl_name NOT IN ('foo') ORDER BY tbl_name, type DESC, name
```
> If a keyword in double quotes (ex: "key" or "glob") is used in a
context where it cannot be resolved to an identifier but where a string
literal is allowed, then the token is understood to be a string literal
instead of an identifier.
http://www.sqlite.org/lang_keywords.html
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/dont_expose_methods_and_attrs_for_internal_usage
Don't expose methods and attrs for internal usage
|
| |/ |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Another fix for #28780 based on discussions at #28789
- In PostgreSQL 10 each sequence does not know its `min_value`.
A new system catalog `pg_sequence` shows it as `seqmin`.
Refer https://github.com/postgres/postgres/commit/1753b1b027035029c2a2a1649065762fafbf63f3
- `setval` 3rd argument needs to set to `false` only when the table has no rows
to avoid `nextval(<sequence_name>)` returns `2` where `1` is expected.
- `min_value` is only necessary when the table has no rows. It used to be necessary
since the 3rd argument of `setval` is always `false`.
|
|\
| |
| |
| | |
Fix association with extension issues
|
| |
| |
| |
| |
| | |
As @matthewd's suggestion, if `klass` has no default scope, it will more
faster.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some third party modules expects that association returns same proxy
object each time (e.g. for stubbing collection methods:
https://github.com/rspec/rspec-rails/issues/1817).
So I decided that cache the proxy object and reset scope in the proxy
object each time.
Related context: https://github.com/rails/rails/commit/c86a32d7451c5d901620ac58630460915292f88b#commitcomment-2784312
|
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes the following issues.
* `association_scope` doesn't include `default_scope`. Should use `scope` instead.
* We can't use `method_missing` for customizing existing method.
* We can't use `relation_delegate_class` for sharing extensions. Should extend per association.
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/deserialize_raw_value_from_database_for_json
Deserialize a raw value from the database in `changed_in_place?` for `AbstractJson`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`AbstractJson`
Structured type values sometimes caused representation problems (keys
sort order, spaces, etc). A raw value from the database should be
deserialized (normalized) to prevent the problems.
|
|/ /
| |
| |
| |
| |
| |
| | |
`quote_default_expression` can be passed nil value when `null: true` and
`default: nil`. This addressed in that case.
Fixes #29222.
|
|\ \
| | |
| | | |
`rename_table` should rename primary key index name
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Formerly, `rename_table` only renamed primary key index name if the
column's data type was sequential (serial, etc in PostgreSQL). The
problem with that is tables whose primary keys had other data types
(e.g. UUID) maintained the old primary key name. So for example,
if the `cats` table has a UUID primary key, and the table is renamed to
`felines`, the primary key index will still be called `cats_pkey`
instead of `felines_pkey`. This PR corrects it.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Allow a default value to be declared for class_attribute
* Convert to using class_attribute default rather than explicit setter
* Removed instance_accessor option by mistake
* False is a valid default value
* Documentation
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/default_env_fall_back_to_default_env_when_rails_env_or_rack_env_is_empty_string
`DEFAULT_ENV` falls back to `default_env` when `RAILS_ENV` or `RACK_ENV` is an empty string
|
| | |
| | |
| | |
| | |
| | |
| | | |
an empty string
Follow up of #27399.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
in `ActiveRecord::Calculations`
`select`, `count`, and `sum` in `Relation` are also `Enumerable` method
that can be passed block. `select` with block already doesn't take
arguments since 4fc3366. This is follow up of that.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
kamipo/remove_returning_true_in_internal_callbacks
Remove returning true in internal callbacks
|
| | | |
| | | |
| | | |
| | | |
| | | | |
`display_deprecation_warning_for_false_terminator` was removed since
3a25cdc.
|
|\ \ \ \
| | | | |
| | | | | |
Prevent extra `current_database` query for `encoding`/`collation`/`ctype`
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/refactor_enum_to_use_value_instead_of_label
Refactor enum to use `value` instead of `label` in the scope
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Delegate `ast` and `locked` to `arel` explicitly
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently `ast` and `locked` are used in the internal but delegating to
`arel` is depend on `method_missing`. If a model class is defined these
methods, `select_all` will be broken.
It should be delegated to `arel` explicitly.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Enable extending even if scope returns nil
|
| | | | | | |
|
| |_|_|_|/
|/| | | |
| | | | |
| | | | | |
Using `Association#interpolate` was removed since #11251.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Doc updates for ActiveRecord::Batches
|
| | | | | |
| | | | | |
| | | | | | |
[ci skip]
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
[ci skip] Changed sentence formation for ActiveRecordRelation#update
|
| | |/ / /
| |/| | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
ActiveRecord initialization optimizations
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This change preserves the speedup made in a24912cb1d3 (by avoiding
the wasted shallow dup of @attributes) while ensuring that the
performance of #deep_dup won't be tied to the performance of #initialize
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Memoize the #column_defaults class property, as ActiveRecord does
for other properties in this module.
This change addresses slowness in ActiveRecord initialization
introduced starting in Rails 5.0. This method's performance has not
changed with Rails 5, but it is now called much more frequently than
before: every time an STI model is instantiated.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This change addresses slowness in ActiveRecord initialization
introduced starting in Rails 5.0.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Skip the call to #dup, since it does a shallow copy of attributes,
which is wasted effort, since #deep_dup then replaces that
shallow copy with a #deep_dup of the given attributes.
This change addresses slowness in ActiveRecord initialization
introduced starting in Rails 5.0.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add a Monitor to ModelSchema#load_schema
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
[Vikrant Chaudhary, David Abdemoulaie, Matthew Draper]
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Fix crashing on circular left join references with scoping
|
| | |_|_|/
| |/| | |
| | | | |
| | | | | |
Follow up of #25702.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Both reference id and type should be `NOT NULL` if `null: false` is specified
|