Ryuta Kamizono
2b35775fbe
Add add_binds
to bulk binds processing for performance
...
Before with `prepared_statements: true`:
```
Warming up --------------------------------------
where with ids 9.000 i/100ms
Calculating -------------------------------------
where with ids 91.992 (± 7.6%) i/s - 459.000 in 5.020817s
```
Now with `prepared_statements: true`:
```
Warming up --------------------------------------
where with ids 10.000 i/100ms
Calculating -------------------------------------
where with ids 99.393 (± 8.0%) i/s - 500.000 in 5.069280s
```
2020-05-11 03:24:49 +09:00
Ryuta Kamizono
72005ad0e1
Refactor preparable
to be had the state in Arel collectors
2020-05-03 23:19:41 +09:00
Ryuta Kamizono
280d6eb2e1
Refactor Arel node Casted
, Quoted
, and BindParam
...
Define `value_for_database` and `value_before_type_cast` methods, and
use those.
2020-04-28 16:26:18 +09:00
Ryuta Kamizono
298629cefd
SQLString#compile
is no longer used since 53521a9e39
2018-09-30 16:49:13 +09:00
Ryuta Kamizono
09de7c9170
Use private attr_reader in Arel
...
No longer needed workaround for Ruby 2.2 "private attribute?" warning.
Related 6d63b5e49a
.
2018-09-30 15:24:17 +09:00
yuuji.yaginuma
1b86d90136
Enable Performance/UnfreezeString
cop
...
In Ruby 2.3 or later, `String#+@` is available and `+@` is faster than `dup`.
```ruby
# frozen_string_literal: true
require "bundler/inline"
gemfile(true) do
source "https://rubygems.org "
gem "benchmark-ips"
end
Benchmark.ips do |x|
x.report('+@') { +"" }
x.report('dup') { "".dup }
x.compare!
end
```
```
$ ruby -v benchmark.rb
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Warming up --------------------------------------
+@ 282.289k i/100ms
dup 187.638k i/100ms
Calculating -------------------------------------
+@ 6.775M (± 3.6%) i/s - 33.875M in 5.006253s
dup 3.320M (± 2.2%) i/s - 16.700M in 5.032125s
Comparison:
+@: 6775299.3 i/s
dup: 3320400.7 i/s - 2.04x slower
```
2018-09-23 08:56:55 +09:00
Matthew Draper
354f1c28e8
Arel: :nodoc: all
2018-02-24 18:11:47 +10:30
Matthew Draper
4c0a3d4880
Arel: rubocop -a
2018-02-24 17:16:13 +10:30
Matthew Draper
17ca17072d
Merge Arel into Active Record
2018-02-24 17:15:32 +10:30