aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #28154 from aripollak/remove-comments-from-structure-sqlRafael Mendonça França2017-03-173-3/+43
|\ | | | | | | Drop comments from structure.sql in postgresql
| * Only remove comments before the first statementAri Pollak2017-02-242-7/+12
| |
| * Drop comments from structure.sql in postgresqlAri Pollak2017-02-243-3/+38
| | | | | | | | Fixes #28153.
* | uniq was deprecated and removed alreadyRafael Mendonça França2017-03-171-1/+1
| | | | | | | | | | This was causing an infinity loop since it was delegating to `all` and all delegating back to this module.
* | Merge pull request #28318 from ↵Rafael França2017-03-174-46/+4
|\ \ | | | | | | | | | | | | bogdanvlviv/remove-ability-update-locking_column-value Remove ability update locking_column value
| * | Remove ability update locking_column valuebogdanvlviv2017-03-164-46/+4
| | |
* | | Add :default option to belongs_to (#28453)George Claghorn2017-03-175-1/+50
|/ / | | | | | | | | | | | | | | | | | | | | Use it to specify that an association should be initialized with a particular record before validation. For example: # Before belongs_to :account before_validation -> { self.account ||= Current.account } # After belongs_to :account, default: -> { Current.account }
* | Fix fragile test (`AssociationProxyTest#test_save_on_parent_saves_children`)Fumiaki MATSUSHIMA2017-03-161-36/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we run only following tests: - test/cases/scoping/default_scoping_test.rb - test/cases/associations_test.rb ``` $ cat Rakefile.test require "rake/testtask" ENV["ARCONN"] = "postgresql" Rake::TestTask.new do |t| t.libs << "test" t.test_files = %w( test/cases/scoping/default_scoping_test.rb test/cases/associations_test.rb ) end ``` a test will fail: ``` $ bundle exec rake test -f Rakefile.test /app/activesupport/lib/active_support/core_ext/enumerable.rb:20: warning: method redefined; discarding old sum Using postgresql Run options: --seed 11830 # Running: .........................................................................................F................ Finished in 6.939055s, 15.2759 runs/s, 27.9577 assertions/s. 1) Failure: AssociationProxyTest#test_save_on_parent_saves_children [/app/activerecord/test/cases/associations_test.rb:185]: Expected: 1 Actual: 2 106 runs, 194 assertions, 1 failures, 0 errors, 0 skips rake aborted! Command failed with status (1) /usr/local/bin/bundle:22:in `load' /usr/local/bin/bundle:22:in `<main>' Tasks: TOP => test (See full trace by running task with --trace) ``` In #28083, change `self.use_transactional_tests` to `false` but we forget to clean-up fixture. However we don't have to disable transaction except a few tests.
* | Remove unused `@txn` variableEugene Kenny2017-03-151-1/+0
| | | | | | | | | | | | This was added in c24c885209ac2334dc6f798c394a821ee270bec6, removed in b89ffe7f0047eb614e42232a21201b317b880755, and then (unintentionally?) reintroduced in 2d7ae1b08ee2a10b12cbfeef3a6cc6da55b57df6.
* | Revert "Merge pull request #28369 from ↵Matthew Draper2017-03-141-2/+2
| | | | | | | | | | | | | | | | | | mylake/reduce-postgresql-adapter-memory-bloat" This reverts commit 192db64452d148c7b51713979459e38407380dc6, reversing changes made to 9893955363cf6358556ed3b36f4538d5b54e9d17. We can't sacrifice correctness for performance.
* | Merge pull request #28369 from mylake/reduce-postgresql-adapter-memory-bloatRafael França2017-03-131-2/+2
|\ \ | | | | | | 500x memory reduction of 10k schemas for postgresql adapter
| * | Use “distinct” to filter redundant types from pg_typeto reduce memory ↵mylake2017-03-101-2/+2
| | | | | | | | | | | | bloat especially in multi-schema structure database
* | | Merge pull request #28068 from kamipo/refactor_data_sourcesRafael França2017-03-138-205/+156
|\ \ \ | | | | | | | | Extract `data_source_sql` to refactor data source statements
| * | | Prefer `USING (column_list)` for joining information_schemaRyuta Kamizono2017-02-251-3/+1
| | | |
| * | | Extract `data_source_sql` to refactor data source statementsRyuta Kamizono2017-02-208-202/+155
| | | |
* | | | Merge pull request #28017 from mtsmfm/suppress-dep-warnMatthew Draper2017-03-133-0/+6
|\ \ \ \ | | | | | | | | | | Suppress deprecation warning `implementing to_yaml is deprecated`
| * | | | Suppress deprecation warning `implementing to_yaml is deprecated`Fumiaki MATSUSHIMA2017-02-153-0/+6
| | | | |
* | | | | Merge pull request #28371 from kamipo/simplify_countAndrew White2017-03-121-7/+4
|\ \ \ \ \ | | | | | | | | | | | | Simply forward `Calculations#count` to `Enumerable#count`
| * | | | | Simply forward `Calculations#count` to `Enumerable#count`Ryuta Kamizono2017-03-101-7/+4
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up of #24203. Since b644964b `ActiveRecord::Relation` includes `Enumerable` so it is enough to call `super` simply.
* | | | | Merge pull request #28372 from kamipo/delegate_as_jsonAndrew White2017-03-123-6/+2
|\ \ \ \ \ | | | | | | | | | | | | Simply delegate `as_json` to `records`
| * | | | | Simply delegate `as_json` to `records`Ryuta Kamizono2017-03-103-6/+2
| |/ / / /
* / / / / Remove conditions parameter from `NullRelation#delete_all`Ryuta Kamizono2017-03-101-1/+1
|/ / / / | | | | | | | | | | | | Follow up of e7381d289e4f8751dcec9553dcb4d32153bd922b.
* | | | Add missing credit [ci skip]Ryuta Kamizono2017-03-101-0/+2
| | | |
* | | | Merge pull request #28351 from kamipo/deprecate_schema_migrations_table_nameRafael Mendonça França2017-03-093-0/+13
|\ \ \ \ | | | | | | | | | | | | | | | Deprecate `Migrator.schema_migrations_table_name`
| * | | | Deprecate `Migrator.schema_migrations_table_name`Ryuta Kamizono2017-03-093-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | Since 67fba0cf `SchemaMigration` model was extracted. Use `SchemaMigration.table_name` instead.
* | | | | Fix select with block doesn't return newly built records in has_many associationRyuta Kamizono2017-03-093-2/+14
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `select` in `QueryMethods` is also an enumerable method. Enumerable methods with block should delegate to `records` on `CollectionProxy`, not `scope`. Fixes #28348.
* | | | Check whether `Rails.application` defined before calling itAndrew White2017-03-072-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In #27674 we changed the migration generator to generate migrations at the path defined in `Rails.application.config.paths` however the code checked for the presence of the `Rails` constant but not the `Rails.application` method which caused problems when using Active Record and generators outside of the context of a Rails application. Fixes #28325.
* | | | Merge pull request #28305 from kamipo/extract_schema_migration_all_versionsAndrew White2017-03-063-4/+8
|\ \ \ \ | | | | | | | | | | Extract `SchemaMigration.all_versions`
| * | | | Extract `SchemaMigration.all_versions`Ryuta Kamizono2017-03-063-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Use `SchemaMigration.all_versions` instead of `SchemaMigration.all.map(&:version)` to avoid to instantiate AR objects.
* | | | | Fix `deserialize` with JSON arrayRyuta Kamizono2017-03-063-1/+17
|/ / / / | | | | | | | | | | | | Fixes #28285.
* | | | Remove useless `Migrator.schema_migrations_table_name`Ryuta Kamizono2017-03-053-12/+8
| | | | | | | | | | | | | | | | Simply use `SchemaMigration.table_name` instead.
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2017-03-041-1/+1
|\ \ \ \
| * | | | Remove duplicated "does" [ci skip]Ryuta Kamizono2017-02-141-1/+1
| | | | |
* | | | | Don't hide method that's been documented API since Rails 2.1Andrew White2017-03-041-3/+3
| | | | |
* | | | | Fix `rake db:schema:load` with subdirectoriesRyuta Kamizono2017-03-053-5/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related #25174. `db:schema:load` doesn't work with subdirectories like previous `db:migrate:status`. `Migrator.migration_files` should be used in `assume_migrated_upto_version` to fix the issue.
* | | | | Fix `rake db:migrate:status` with subdirectoriesRyuta Kamizono2017-03-044-24/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `db:migrate` supports subdirectories and have a test. https://github.com/rails/rails/blob/v5.1.0.beta1/activerecord/test/cases/migrator_test.rb#L78-L85 But `db:migrate:status` doesn't work with subdirectories. It is due to `Dir.foreach(path)` is not the same with `Dir["#{path}/**/[0-9]*_*.rb"]`. I extracted `migration_files` and sharing it in the both to fix the issue. And added tests for `db:migrate:status`.
* | | | | [ci skip] Add CHANGELOG entry for #28282Andrew White2017-03-041-0/+10
| | | | |
* | | | | Don't share `options` with a reference type columnRyuta Kamizono2017-03-042-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sharing `options` causes some unexpected behavior. If `limit: 2` is specified, this means that 2 bytes integer for a reference id column and 2 chars string for a reference type column. Another example, if `unsigned: true` is specified, this means that unsigned integer for a reference id column, but a invalid option for a reference type column. So `options` should not be shared with a reference type column.
* | | | | remove unused parametersAaron Patterson2017-03-031-6/+6
| | | | |
* | | | | `join_keys` no longer needs a class passed to itAaron Patterson2017-03-033-30/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reflections only use their own information to create a `join_keys` object. This means that we can call `join_keys` on a reflection object and have it be context-free.
* | | | | refactor so there is only one JoinKeys factory methodAaron Patterson2017-03-031-4/+15
| | | | |
* | | | | ask reflection for klass join reflectionAaron Patterson2017-03-032-13/+16
| | | | |
* | | | | Move join scopes on to the reflection objectAaron Patterson2017-03-032-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scopes can only ever be *not* reflection objects when they are passed in to the Reflection constructor. Given this fact, we can eliminate is_a checks and an intermediate array object by just asking the reflection object for join scopes.
* | | | | Remove `node` parameter to `join_constraints`Aaron Patterson2017-03-032-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | I don't think we actually need this parameter anymore. Nobody seems to be using it.
* | | | | Merge pull request #28242 from rails/add-fractional-support-to-datetime-changeAndrew White2017-03-021-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Update `DateTime#change` to support usec and nsec
| * | | | | Update `DateTime#change` to support usec and nsecAndrew White2017-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding support for these options now allows us to update the `DateTime#end_of` methods to match the equivalent `Time#end_of` methods, e.g: datetime = DateTime.now.end_of_day datetime.nsec == 999999999 # => true Fixes #21424.
* | | | | | Merge pull request #28220 from kamipo/valid_type_accept_only_supported_typesRafael França2017-03-015-42/+10
|\ \ \ \ \ \ | |/ / / / / |/| | | | | `valid_type?` should accept only supported types
| * | | | | `valid_type?` should accept only supported typesRyuta Kamizono2017-02-285-42/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `valid_type?` is used in schema dumper to determine if a type is supported. So if `valid_type?(:foobar)` is true, it means that schema dumper is allowed to create `t.foobar`. But it doesn't work. I think that `valid_type?` should accept only supported types. https://github.com/rails/rails/blob/v5.1.0.beta1/activerecord/lib/active_record/schema_dumper.rb#L135-L142 ```ruby columns.each do |column| raise StandardError, "Unknown type '#{column.sql_type}' for column '#{column.name}'" unless @connection.valid_type?(column.type) next if column.name == pk type, colspec = @connection.column_spec(column) tbl.print " t.#{type} #{column.name.inspect}" tbl.print ", #{format_colspec(colspec)}" if colspec.present? tbl.puts end ```
* | | | | | Whitelist adapters that support aliases in `HAVING` clauseAndrew White2017-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for using `SELECT` column or expression aliases in the `HAVING` clause isn't part of the SQL standard so it's better to whitelist the test for adapters where we know it works and skip it on others.
* | | | | | Merge pull request #25296 from kamipo/use_inspect_for_type_cast_for_schemaRafael França2017-02-282-7/+12
|\ \ \ \ \ \ | | | | | | | | | | | | | | Use `inspect` in `type_cast_for_schema` for date/time and decimal values