Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
3088d236
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,发现更多精彩内容 >>
提交
3088d236
编写于
10月 06, 2011
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3232 from Juanmcuello/pg_prepared_statements
Use the schema_search_path in prepared statements.
上级
99888487
ac659b8e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
3 deletion
+23
-3
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
...b/active_record/connection_adapters/postgresql_adapter.rb
+4
-3
activerecord/test/cases/adapters/postgresql/schema_test.rb
activerecord/test/cases/adapters/postgresql/schema_test.rb
+19
-0
未找到文件。
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
浏览文件 @
3088d236
...
@@ -1035,13 +1035,14 @@ def exec_no_cache(sql, binds)
...
@@ -1035,13 +1035,14 @@ def exec_no_cache(sql, binds)
end
end
def
exec_cache
(
sql
,
binds
)
def
exec_cache
(
sql
,
binds
)
unless
@statements
.
key?
sql
sql_key
=
"
#{
schema_search_path
}
-
#{
sql
}
"
unless
@statements
.
key?
sql_key
nextkey
=
@statements
.
next_key
nextkey
=
@statements
.
next_key
@connection
.
prepare
nextkey
,
sql
@connection
.
prepare
nextkey
,
sql
@statements
[
sql
]
=
nextkey
@statements
[
sql
_key
]
=
nextkey
end
end
key
=
@statements
[
sql
]
key
=
@statements
[
sql
_key
]
# Clear the queue
# Clear the queue
@connection
.
get_last_result
@connection
.
get_last_result
...
...
activerecord/test/cases/adapters/postgresql/schema_test.rb
浏览文件 @
3088d236
...
@@ -38,6 +38,10 @@ class Thing4 < ActiveRecord::Base
...
@@ -38,6 +38,10 @@ class Thing4 < ActiveRecord::Base
set_table_name
'test_schema."Things"'
set_table_name
'test_schema."Things"'
end
end
class
Thing5
<
ActiveRecord
::
Base
set_table_name
'things'
end
def
setup
def
setup
@connection
=
ActiveRecord
::
Base
.
connection
@connection
=
ActiveRecord
::
Base
.
connection
@connection
.
execute
"CREATE SCHEMA
#{
SCHEMA_NAME
}
CREATE TABLE
#{
TABLE_NAME
}
(
#{
COLUMNS
.
join
(
','
)
}
)"
@connection
.
execute
"CREATE SCHEMA
#{
SCHEMA_NAME
}
CREATE TABLE
#{
TABLE_NAME
}
(
#{
COLUMNS
.
join
(
','
)
}
)"
...
@@ -236,6 +240,21 @@ def test_current_schema
...
@@ -236,6 +240,21 @@ def test_current_schema
end
end
end
end
def
test_prepared_statements_with_multiple_schemas
@connection
.
schema_search_path
=
SCHEMA_NAME
Thing5
.
create
(
:id
=>
1
,
:name
=>
"thing inside
#{
SCHEMA_NAME
}
"
,
:email
=>
"thing1@localhost"
,
:moment
=>
Time
.
now
)
@connection
.
schema_search_path
=
SCHEMA2_NAME
Thing5
.
create
(
:id
=>
1
,
:name
=>
"thing inside
#{
SCHEMA2_NAME
}
"
,
:email
=>
"thing1@localhost"
,
:moment
=>
Time
.
now
)
@connection
.
schema_search_path
=
SCHEMA_NAME
assert_equal
1
,
Thing5
.
count
@connection
.
schema_search_path
=
SCHEMA2_NAME
assert_equal
1
,
Thing5
.
count
end
def
test_schema_exists?
def
test_schema_exists?
{
{
'public'
=>
true
,
'public'
=>
true
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录