Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
fa73cf72
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,发现更多精彩内容 >>
提交
fa73cf72
编写于
11月 21, 2012
作者:
B
Bogdan Gusiev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix postgresql adapter to handle bc timestamps correctly
上级
f058e565
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
24 addition
and
3 deletion
+24
-3
activerecord/CHANGELOG.md
activerecord/CHANGELOG.md
+6
-0
activerecord/lib/active_record/connection_adapters/postgresql/cast.rb
.../lib/active_record/connection_adapters/postgresql/cast.rb
+2
-0
activerecord/lib/active_record/connection_adapters/postgresql/quoting.rb
...b/active_record/connection_adapters/postgresql/quoting.rb
+7
-3
activerecord/test/cases/adapters/postgresql/timestamp_test.rb
...verecord/test/cases/adapters/postgresql/timestamp_test.rb
+9
-0
未找到文件。
activerecord/CHANGELOG.md
浏览文件 @
fa73cf72
## Rails 4.0.0 (unreleased) ##
*
Fix postgresql adapter to handle BC timestamps correctly
HistoryEvent.create!(:name => "something", :occured_at => Date.new(0) - 5.years)
*Bogdan Gusiev*
*
When running migrations on Postgresql, the
`:limit`
option for
`binary`
and
`text`
columns is silently dropped.
Previously, these migrations caused sql exceptions, because Postgresql doesn't support limits on these types.
...
...
activerecord/lib/active_record/connection_adapters/postgresql/cast.rb
浏览文件 @
fa73cf72
...
...
@@ -8,6 +8,8 @@ def string_to_time(string)
case
string
when
'infinity'
;
1.0
/
0.0
when
'-infinity'
;
-
1.0
/
0.0
when
/ BC$/
super
(
"-"
+
string
.
sub
(
/ BC$/
,
""
))
else
super
end
...
...
activerecord/lib/active_record/connection_adapters/postgresql/quoting.rb
浏览文件 @
fa73cf72
...
...
@@ -129,11 +129,15 @@ def quote_column_name(name) #:nodoc:
# Quote date/time values for use in SQL input. Includes microseconds
# if the value is a Time responding to usec.
def
quoted_date
(
value
)
#:nodoc:
result
=
super
if
value
.
acts_like?
(
:time
)
&&
value
.
respond_to?
(
:usec
)
"
#{
super
}
.
#{
sprintf
(
"%06d"
,
value
.
usec
)
}
"
else
super
result
=
"
#{
result
}
.
#{
sprintf
(
"%06d"
,
value
.
usec
)
}
"
end
if
value
.
year
<
0
result
=
result
.
sub
(
/^-/
,
""
)
+
" BC"
end
result
end
end
end
...
...
activerecord/test/cases/adapters/postgresql/timestamp_test.rb
浏览文件 @
fa73cf72
...
...
@@ -75,6 +75,15 @@ def test_postgres_agrees_with_activerecord_about_precision
assert_equal
'4'
,
pg_datetime_precision
(
'foos'
,
'updated_at'
)
end
def
test_bc_timestamp
unless
current_adapter?
(
:PostgreSQLAdapter
)
return
skip
(
"only tested on postgresql"
)
end
date
=
Date
.
new
(
0
)
-
1
.
second
Developer
.
create!
(
:name
=>
"aaron"
,
:updated_at
=>
date
)
assert_equal
date
,
Developer
.
find_by_name
(
"aaron"
).
updated_at
end
private
def
pg_datetime_precision
(
table_name
,
column_name
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录