Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e12e7a8f
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e12e7a8f
编写于
7月 02, 2016
作者:
R
Rafael França
提交者:
GitHub
7月 02, 2016
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #25507 from bquorning/optimize-for-first-result-and-remove-mysql-select_one
Remove #select_one from Mysql2Adapter
上级
193d9079
763de2ac
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
14 deletion
+17
-14
activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb
...e_record/connection_adapters/mysql/database_statements.rb
+0
-13
activerecord/lib/active_record/result.rb
activerecord/lib/active_record/result.rb
+7
-1
activerecord/test/cases/result_test.rb
activerecord/test/cases/result_test.rb
+10
-0
未找到文件。
activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb
浏览文件 @
e12e7a8f
...
...
@@ -13,19 +13,6 @@ def select_all(arel, name = nil, binds = [], preparable: nil)
result
end
# Returns a record hash with the column names as keys and column values
# as values.
def
select_one
(
arel
,
name
=
nil
,
binds
=
[])
arel
,
binds
=
binds_from_relation
(
arel
,
binds
)
@connection
.
query_options
.
merge!
(
as: :hash
)
select_result
(
to_sql
(
arel
,
binds
),
name
,
binds
)
do
|
result
|
@connection
.
next_result
while
@connection
.
more_results?
result
.
first
end
ensure
@connection
.
query_options
.
merge!
(
as: :array
)
end
# Returns an array of arrays containing the field values.
# Order is the same as that returned by +columns+.
def
select_rows
(
sql
,
name
=
nil
,
binds
=
[])
...
...
activerecord/lib/active_record/result.rb
浏览文件 @
e12e7a8f
...
...
@@ -75,8 +75,14 @@ def [](idx)
hash_rows
[
idx
]
end
def
first
return
nil
if
@rows
.
empty?
Hash
[
@columns
.
zip
(
@rows
.
first
)]
end
def
last
hash_rows
.
last
return
nil
if
@rows
.
empty?
Hash
[
@columns
.
zip
(
@rows
.
last
)]
end
def
cast_values
(
type_overrides
=
{})
# :nodoc:
...
...
activerecord/test/cases/result_test.rb
浏览文件 @
e12e7a8f
...
...
@@ -22,6 +22,16 @@ def result
],
result
.
to_hash
end
test
"first returns first row as a hash"
do
assert_equal
(
{
'col_1'
=>
'row 1 col 1'
,
'col_2'
=>
'row 1 col 2'
},
result
.
first
)
end
test
"last returns last row as a hash"
do
assert_equal
(
{
'col_1'
=>
'row 3 col 1'
,
'col_2'
=>
'row 3 col 2'
},
result
.
last
)
end
test
"each with block returns row hashes"
do
result
.
each
do
|
row
|
assert_equal
[
'col_1'
,
'col_2'
],
row
.
keys
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录