Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
dcbfd642
提交
dcbfd642
authored
6 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improve TestKeywords and add new context-sensitive keywords
上级
7a7e9252
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
20 行增加
和
6 行删除
+20
-6
advanced.html
h2/src/docsrc/html/advanced.html
+6
-0
JdbcDatabaseMetaData.java
h2/src/main/org/h2/jdbc/JdbcDatabaseMetaData.java
+3
-3
ParserUtil.java
h2/src/main/org/h2/util/ParserUtil.java
+4
-3
TestKeywords.java
h2/src/test/org/h2/test/unit/TestKeywords.java
+7
-0
没有找到文件。
h2/src/docsrc/html/advanced.html
浏览文件 @
dcbfd642
...
...
@@ -498,6 +498,8 @@ The following tokens are keywords in H2:
<td>
CS
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
BETWEEN
</td>
<td>
CS
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
NR
</td><td>
+
</td></tr>
<tr><td>
BOTH
</td>
<td>
CS
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
CASE
</td>
<td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
CHECK
</td>
...
...
@@ -556,6 +558,8 @@ The following tokens are keywords in H2:
<td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
JOIN
</td>
<td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
LEADING
</td>
<td>
CS
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
LEFT
</td>
<td>
CS
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
LIKE
</td>
...
...
@@ -612,6 +616,8 @@ The following tokens are keywords in H2:
<td>
CS
</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>
TOP
</td>
<td>
CS
</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>
TRAILING
</td>
<td>
CS
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
TRUE
</td>
<td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td><td>
+
</td></tr>
<tr><td>
UNION
</td>
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/jdbc/JdbcDatabaseMetaData.java
浏览文件 @
dcbfd642
...
...
@@ -1553,7 +1553,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements
* The complete list of keywords (including SQL:2003 keywords) is:
* <pre>
* ALL, AND, ARRAY, AS,
* BETWEEN,
* BETWEEN,
BOTH
* CASE, CHECK, CONSTRAINT, CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER,
* DISTINCT,
* EXCEPT, EXISTS,
...
...
@@ -1562,7 +1562,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements
* HAVING,
* IF, ILIKE, IN, INNER, INTERSECT, INTERSECTS, INTERVAL, IS,
* JOIN,
* LEFT, LIKE, LIMIT, LOCALTIME, LOCALTIMESTAMP,
* LE
ADING, LE
FT, LIKE, LIMIT, LOCALTIME, LOCALTIMESTAMP,
* MINUS,
* NATURAL, NOT, NULL,
* OFFSET, ON, OR, ORDER, OVER,
...
...
@@ -1570,7 +1570,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements
* QUALIFY,
* REGEXP, RIGHT, ROW, _ROWID_, ROWNUM,
* SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP,
* TABLE, TODAY, TOP, TRUE,
* TABLE, TODAY, TOP, TR
AILING, TR
UE,
* UNION, UNIQUE,
* VALUES,
* WHERE, WINDOW, WITH
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/ParserUtil.java
浏览文件 @
dcbfd642
...
...
@@ -412,7 +412,7 @@ public class ParserUtil {
return
IDENTIFIER
;
case
'B'
:
if
(
additionalKeywords
)
{
if
(
eq
(
"BETWEEN"
,
s
,
ignoreCase
,
start
,
end
))
{
if
(
eq
(
"BETWEEN"
,
s
,
ignoreCase
,
start
,
end
)
||
eq
(
"BOTH"
,
s
,
ignoreCase
,
start
,
end
)
)
{
return
KEYWORD
;
}
}
...
...
@@ -514,7 +514,7 @@ public class ParserUtil {
return
LOCALTIMESTAMP
;
}
if
(
additionalKeywords
)
{
if
(
eq
(
"LEFT"
,
s
,
ignoreCase
,
start
,
end
))
{
if
(
eq
(
"LE
ADING"
,
s
,
ignoreCase
,
start
,
end
)
||
eq
(
"LE
FT"
,
s
,
ignoreCase
,
start
,
end
))
{
return
KEYWORD
;
}
}
...
...
@@ -587,7 +587,8 @@ public class ParserUtil {
return
TRUE
;
}
if
(
additionalKeywords
)
{
if
(
eq
(
"TODAY"
,
s
,
ignoreCase
,
start
,
end
)
||
eq
(
"TOP"
,
s
,
ignoreCase
,
start
,
end
))
{
if
(
eq
(
"TODAY"
,
s
,
ignoreCase
,
start
,
end
)
||
eq
(
"TOP"
,
s
,
ignoreCase
,
start
,
end
)
||
eq
(
"TRAILING"
,
s
,
ignoreCase
,
start
,
end
))
{
return
KEYWORD
;
}
}
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/unit/TestKeywords.java
浏览文件 @
dcbfd642
...
...
@@ -93,6 +93,13 @@ public class TestKeywords extends TestBase {
assertFalse
(
rs
.
next
());
assertEquals
(
s
,
rs
.
getMetaData
().
getColumnLabel
(
1
));
}
stat
.
execute
(
"DROP TABLE "
+
s
);
stat
.
execute
(
"CREATE TABLE TEST("
+
s
+
" VARCHAR) AS VALUES '-'"
);
try
(
ResultSet
rs
=
stat
.
executeQuery
(
"SELECT TRIM("
+
s
+
" FROM '--a--') FROM TEST"
))
{
assertTrue
(
rs
.
next
());
assertEquals
(
"a"
,
rs
.
getString
(
1
));
}
stat
.
execute
(
"DROP TABLE TEST"
);
}
catch
(
Throwable
t
)
{
throw
new
AssertionError
(
s
+
" cannot be used as identifier."
,
t
);
}
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论