- 20 9月, 2015 3 次提交
-
-
由 Ryuta Kamizono 提交于
Example: create_table :barcodes, primary_key: ["region", "code"] do |t| t.string :region t.integer :code end
-
由 Ryuta Kamizono 提交于
Some test cases are testing only mysql adapter. We should test mysql2 adapter also.
-
由 Ryuta Kamizono 提交于
`@connection` in `StatementPool` is only used for PG adapter. No need for abstract `StatementPool` class.
-
- 19 9月, 2015 3 次提交
-
-
由 Jerry D'Antonio 提交于
The thread_safe gem is being deprecated and all its code has been merged into the concurrent-ruby gem. The new class, Concurrent::Map, is exactly the same as its predecessor except for fixes to two bugs discovered during the merge.
-
由 Tony Miller 提交于
Is this supposed to be public API? If so, I can document it instead.
📝 -
由 Ronak Jangir 提交于
-
- 18 9月, 2015 2 次提交
-
-
由 Akira Matsuda 提交于
-
由 Akira Matsuda 提交于
-
- 17 9月, 2015 7 次提交
-
-
由 yui-knk 提交于
Other public APIs do not have these annotations.
-
由 yui-knk 提交于
-
由 yui-knk 提交于
-
由 amitkumarsuroliya 提交于
-
由 Akira Matsuda 提交于
[ci skip]
-
由 schneems 提交于
The schema_migrations table name is configurable. We should use this value when checking for ignored table names when dumping schema instead of a hardcoded value.
-
由 Ronak Jangir 提交于
-
- 16 9月, 2015 1 次提交
-
-
由 Yasuo Honda 提交于
-
- 15 9月, 2015 1 次提交
-
-
由 schneems 提交于
-
- 14 9月, 2015 1 次提交
-
-
由 Ryuta Kamizono 提交于
Follow up #21591. The document of limit option for a text column is incorrect. MySQL: the limit is byte length, not character length Pg, Sqlite3: variable unlimited length
-
- 12 9月, 2015 1 次提交
-
-
由 Ronak Jangir 提交于
`restrict_with_error` message will now respect owner’s human name in any locale [kuboon & Ronak Jangir]
-
- 11 9月, 2015 1 次提交
-
-
由 Ryuta Kamizono 提交于
-
- 10 9月, 2015 2 次提交
-
-
由 Akira Matsuda 提交于
autoloading this could possibly cause some weird race condition when calling an AR::Attribute's singleton method on a threaded server.
-
由 amitkumarsuroliya 提交于
Bumps from `5.6` to `5.7`
-
- 09 9月, 2015 9 次提交
-
-
由 Yves Senn 提交于
This method is private API and never used. Let's remove it.
-
由 Yves Senn 提交于
`Schema#migrations_paths` is not supposed to be public API. In fact it's only used inside `Schema` itself, so let's make it private.
-
由 Rafael Mendonça França 提交于
It is always passed in
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
Usage was removed in 5c449553
-
由 Rafael Mendonça França 提交于
This reverts commit d5ba9a42, reversing changes made to 30c50339. Reason: This generate the dynalic finders more than one time
-
由 Ronak Jangir 提交于
-
由 claudiob 提交于
[ci skip] @sgrif can you review when you have time? Thanks!
- 08 9月, 2015 9 次提交
-
-
由 yui-knk 提交于
These 3 methods expect `ConnectionAdapters` to have `tables` method, so make it clear that `tables` method is interface. * `ConnectionAdapters::SchemaCache#prepare_tables` * `db:schema:cache:dump` task * `SchemaDumper#tables`
-
由 yui-knk 提交于
Basically view tests for MySQL are same with `test/cases/adapters/postgresql/view_test.rb`. So move `test/cases/adapters/postgresql/view_test.rb` to `test/cases/view_test.rb` and make them only run if `current_adapter` supports writable view.
-
由 arvind 提交于
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
Its value never change since associations are defined at class load time so there is no need to build the hash everytime the method is called. Before this change: Calculating ------------------------------------- reflections 804.000 i/100ms ------------------------------------------------- reflections 8.213k (±26.2%) i/s - 36.180k After this change: Calculating ------------------------------------- reflections 24.548k i/100ms ------------------------------------------------- reflections 1.591M (±25.7%) i/s - 7.364M Benchmark script: require 'bundler/setup' require 'active_record' require 'benchmark/ips' ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') ActiveRecord::Migration.verbose = false ActiveRecord::Schema.define do 100.times do |i| create_table "users#{i}", force: true end create_table :cars, force: true do |t| 100.times do |i| t.references "users#{i}" end end end class Car < ActiveRecord::Base 100.times do |i| belongs_to "users#{i}".to_sym end end Benchmark.ips do |x| x.report('reflections') { Car.reflections } end
-
由 Guo Xiang Tan 提交于
Benchmark Script Used: ``` begin require 'bundler/inline' rescue LoadError => e $stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' raise e end gemfile(true) do source 'https://rubygems.org' gem 'rails', path: '~/rails' # master against ref "f1f0a3f8" gem 'arel', github: 'rails/arel', branch: 'master' gem 'rack', github: 'rack/rack', branch: 'master' gem 'sass' gem 'sprockets-rails', github: 'rails/sprockets-rails', branch: 'master' gem 'sprockets', github: 'rails/sprockets', branch: 'master' gem 'pg' gem 'benchmark-ips' end require 'active_record' require 'benchmark/ips' ActiveRecord::Base.establish_connection('postgres://postgres@localhost:5432/rubybench') ActiveRecord::Migration.verbose = false ActiveRecord::Schema.define do create_table :users, force: true do |t| t.string :name, :email t.timestamps null: false end end class User < ActiveRecord::Base; end attributes = { name: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", email: "foobar@email.com", } 1000.times { User.create!(attributes) } Benchmark.ips(5, 3) do |x| x.report('where with hash single') { User.where(name: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.") } x.report('where with string single') { User.where("users.name = ?", "Lorem ipsum dolor sit amet, consectetur adipiscing elit.") } x.report('where with hash double') { User.where(name: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", email: "foobar@email.com") } x.report('where with string double') { User.where("users.name = ? AND users.email = ?", "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "foobar@email.com") } x.compare! end ``` Before: ``` Calculating ------------------------------------- where with hash single 3.300k i/100ms where with string single 4.965k i/100ms where with hash double 2.594k i/100ms where with string double 4.400k i/100ms ------------------------------------------------- where with hash single 35.161k (± 1.2%) i/s - 178.200k where with string single 53.368k (± 2.9%) i/s - 268.110k where with hash double 27.364k (± 1.1%) i/s - 137.482k where with string double 46.876k (± 2.1%) i/s - 237.600k Comparison: where with string single: 53368.1 i/s where with string double: 46875.5 i/s - 1.14x slower where with hash single: 35160.8 i/s - 1.52x slower where with hash double: 27364.0 i/s - 1.95x slower ``` After: ``` Calculating ------------------------------------- where with hash single 3.403k i/100ms where with string single 5.167k i/100ms where with hash double 2.659k i/100ms where with string double 4.597k i/100ms ------------------------------------------------- where with hash single 36.410k (± 1.3%) i/s - 183.762k where with string single 55.009k (± 2.6%) i/s - 279.018k where with hash double 27.951k (± 1.4%) i/s - 140.927k where with string double 48.362k (± 2.6%) i/s - 243.641k Comparison: where with string single: 55008.6 i/s where with string double: 48361.5 i/s - 1.14x slower where with hash single: 36410.1 i/s - 1.51x slower where with hash double: 27950.9 i/s - 1.97x slower ```
-
由 Jeremy Daer 提交于
Known failure on Ruby 2.3/trunk: brianmario/mysql2#671
-
由 Dmitry Polushkin 提交于
Example: ```ruby class Person include ActiveModel::Validations attr_reader :name, :title validates_presence_of :name, on: :create validates_presence_of :title, on: :update end person = Person.new person.valid?([:create, :update]) # => true person.errors.messages # => {:name=>["can't be blank"], :title=>["can't be blank"]} ```
-
由 Rafael Mendonça França 提交于
Related with #20418
-