Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
c753ede6
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 搜索 >>
提交
c753ede6
编写于
11月 27, 2014
作者:
F
Florian Weingarten
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Restore query cache on rollback
上级
5ac824ec
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
49 addition
and
9 deletion
+49
-9
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
...ecord/connection_adapters/abstract/database_statements.rb
+12
-1
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
...active_record/connection_adapters/abstract/query_cache.rb
+1
-1
activerecord/lib/active_record/connection_adapters/abstract/savepoints.rb
.../active_record/connection_adapters/abstract/savepoints.rb
+1
-1
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
...lib/active_record/connection_adapters/abstract_adapter.rb
+0
-3
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
...tive_record/connection_adapters/abstract_mysql_adapter.rb
+1
-1
activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
...ord/connection_adapters/postgresql/database_statements.rb
+1
-1
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
.../lib/active_record/connection_adapters/sqlite3_adapter.rb
+1
-1
activerecord/test/cases/query_cache_test.rb
activerecord/test/cases/query_cache_test.rb
+32
-0
未找到文件。
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
浏览文件 @
c753ede6
...
...
@@ -258,7 +258,18 @@ def commit_db_transaction() end
# Rolls back the transaction (and turns on auto-committing). Must be
# done if the transaction block raises an exception or returns false.
def
rollback_db_transaction
()
end
def
rollback_db_transaction
exec_rollback_db_transaction
end
def
exec_rollback_db_transaction
()
end
#:nodoc:
def
rollback_to_savepoint
(
name
=
nil
)
exec_rollback_to_savepoint
(
name
)
end
def
exec_rollback_to_savepoint
(
name
=
nil
)
#:nodoc:
end
def
default_sequence_name
(
table
,
column
)
nil
...
...
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
浏览文件 @
c753ede6
...
...
@@ -3,7 +3,7 @@ module ConnectionAdapters # :nodoc:
module
QueryCache
class
<<
self
def
included
(
base
)
#:nodoc:
dirties_query_cache
base
,
:insert
,
:update
,
:delete
dirties_query_cache
base
,
:insert
,
:update
,
:delete
,
:rollback_to_savepoint
,
:rollback_db_transaction
end
def
dirties_query_cache
(
base
,
*
method_names
)
...
...
activerecord/lib/active_record/connection_adapters/abstract/savepoints.rb
浏览文件 @
c753ede6
...
...
@@ -9,7 +9,7 @@ def create_savepoint(name = current_savepoint_name)
execute
(
"SAVEPOINT
#{
name
}
"
)
end
def
rollback_to_savepoint
(
name
=
current_savepoint_name
)
def
exec_
rollback_to_savepoint
(
name
=
current_savepoint_name
)
execute
(
"ROLLBACK TO SAVEPOINT
#{
name
}
"
)
end
...
...
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
浏览文件 @
c753ede6
...
...
@@ -341,9 +341,6 @@ def raw_connection
def
create_savepoint
(
name
=
nil
)
end
def
rollback_to_savepoint
(
name
=
nil
)
end
def
release_savepoint
(
name
=
nil
)
end
...
...
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
浏览文件 @
c753ede6
...
...
@@ -324,7 +324,7 @@ def commit_db_transaction #:nodoc:
execute
"COMMIT"
end
def
rollback_db_transaction
#:nodoc:
def
exec_
rollback_db_transaction
#:nodoc:
execute
"ROLLBACK"
end
...
...
activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
浏览文件 @
c753ede6
...
...
@@ -223,7 +223,7 @@ def commit_db_transaction
end
# Aborts a transaction.
def
rollback_db_transaction
def
exec_
rollback_db_transaction
execute
"ROLLBACK"
end
end
...
...
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
浏览文件 @
c753ede6
...
...
@@ -361,7 +361,7 @@ def commit_db_transaction #:nodoc:
log
(
'commit transaction'
,
nil
)
{
@connection
.
commit
}
end
def
rollback_db_transaction
#:nodoc:
def
exec_
rollback_db_transaction
#:nodoc:
log
(
'rollback transaction'
,
nil
)
{
@connection
.
rollback
}
end
...
...
activerecord/test/cases/query_cache_test.rb
浏览文件 @
c753ede6
...
...
@@ -212,6 +212,38 @@ def test_cache_is_available_when_connection_is_connected
ensure
ActiveRecord
::
Base
.
configurations
=
conf
end
def
test_query_cache_doesnt_leak_cached_results_of_rolled_back_queries
ActiveRecord
::
Base
.
connection
.
enable_query_cache!
post
=
Post
.
first
Post
.
transaction
do
post
.
update_attributes
(
title:
'rollback'
)
assert_equal
1
,
Post
.
where
(
title:
'rollback'
).
to_a
.
count
raise
ActiveRecord
::
Rollback
end
assert_equal
0
,
Post
.
where
(
title:
'rollback'
).
to_a
.
count
ActiveRecord
::
Base
.
connection
.
uncached
do
assert_equal
0
,
Post
.
where
(
title:
'rollback'
).
to_a
.
count
end
begin
Post
.
transaction
do
post
.
update_attributes
(
title:
'rollback'
)
assert_equal
1
,
Post
.
where
(
title:
'rollback'
).
to_a
.
count
raise
'broken'
end
rescue
Exception
end
assert_equal
0
,
Post
.
where
(
title:
'rollback'
).
to_a
.
count
ActiveRecord
::
Base
.
connection
.
uncached
do
assert_equal
0
,
Post
.
where
(
title:
'rollback'
).
to_a
.
count
end
end
end
class
QueryCacheExpiryTest
<
ActiveRecord
::
TestCase
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录