Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
9b2bbeb2
提交
9b2bbeb2
authored
7 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Reimplement MONTHNAME and DAYNAME without Calendar and SimpleDateFormat
上级
3c45c3c6
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
23 行增加
和
7 行删除
+23
-7
Function.java
h2/src/main/org/h2/expression/Function.java
+22
-7
TestClearReferences.java
h2/src/test/org/h2/test/unit/TestClearReferences.java
+1
-0
没有找到文件。
h2/src/main/org/h2/expression/Function.java
浏览文件 @
9b2bbeb2
...
...
@@ -15,7 +15,7 @@ import java.nio.charset.StandardCharsets;
import
java.sql.Connection
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.text.
SimpleDateFormat
;
import
java.text.
DateFormatSymbols
;
import
java.util.ArrayList
;
import
java.util.GregorianCalendar
;
import
java.util.HashMap
;
...
...
@@ -153,6 +153,11 @@ public class Function extends Expression implements FunctionCall {
private
static
final
HashMap
<
String
,
Integer
>
DATE_PART
=
new
HashMap
<>();
private
static
final
char
[]
SOUNDEX_INDEX
=
new
char
[
128
];
/**
* English names of months and week days.
*/
private
static
volatile
String
[][]
MONTHS_AND_WEEKS
;
protected
Expression
[]
args
;
private
final
FunctionInfo
info
;
...
...
@@ -844,9 +849,8 @@ public class Function extends Expression implements FunctionCall {
database
.
getMode
().
treatEmptyStringsAsNull
);
break
;
case
DAY_NAME:
{
SimpleDateFormat
dayName
=
new
SimpleDateFormat
(
"EEEE"
,
Locale
.
ENGLISH
);
result
=
ValueString
.
get
(
dayName
.
format
(
v0
.
getDate
()),
int
dayOfWeek
=
DateTimeUtils
.
getSundayDayOfWeek
(
DateTimeUtils
.
dateAndTimeFromValue
(
v0
)[
0
]);
result
=
ValueString
.
get
(
getMonthsAndWeeks
(
1
)[
dayOfWeek
],
database
.
getMode
().
treatEmptyStringsAsNull
);
break
;
}
...
...
@@ -866,9 +870,8 @@ public class Function extends Expression implements FunctionCall {
result
=
ValueInt
.
get
(
getIntDatePart
(
v0
,
info
.
type
));
break
;
case
MONTH_NAME:
{
SimpleDateFormat
monthName
=
new
SimpleDateFormat
(
"MMMM"
,
Locale
.
ENGLISH
);
result
=
ValueString
.
get
(
monthName
.
format
(
v0
.
getDate
()),
int
month
=
DateTimeUtils
.
monthFromDateValue
(
DateTimeUtils
.
dateAndTimeFromValue
(
v0
)[
0
]);
result
=
ValueString
.
get
(
getMonthsAndWeeks
(
0
)[
month
-
1
],
database
.
getMode
().
treatEmptyStringsAsNull
);
break
;
}
...
...
@@ -2025,6 +2028,18 @@ public class Function extends Expression implements FunctionCall {
return
r2
-
r1
;
}
private
static
String
[]
getMonthsAndWeeks
(
int
field
)
{
String
[][]
result
=
MONTHS_AND_WEEKS
;
if
(
result
==
null
)
{
result
=
new
String
[
2
][];
DateFormatSymbols
dfs
=
DateFormatSymbols
.
getInstance
(
Locale
.
ENGLISH
);
result
[
0
]
=
dfs
.
getMonths
();
result
[
1
]
=
dfs
.
getWeekdays
();
MONTHS_AND_WEEKS
=
result
;
}
return
result
[
field
];
}
private
static
String
substring
(
String
s
,
int
start
,
int
length
)
{
int
len
=
s
.
length
();
start
--;
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/unit/TestClearReferences.java
浏览文件 @
9b2bbeb2
...
...
@@ -26,6 +26,7 @@ public class TestClearReferences extends TestBase {
"org.h2.compress.CompressLZF.cachedHashTable"
,
"org.h2.engine.DbSettings.defaultSettings"
,
"org.h2.engine.SessionRemote.sessionFactory"
,
"org.h2.expression.Function.MONTHS_AND_WEEKS"
,
"org.h2.jdbcx.JdbcDataSourceFactory.cachedTraceSystem"
,
"org.h2.store.RecoverTester.instance"
,
"org.h2.store.fs.FilePath.defaultProvider"
,
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论