Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
801e2304
提交
801e2304
authored
6 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Convert _ROWID_ to a keyword
上级
d4b3f8f6
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
31 行增加
和
10 行删除
+31
-10
advanced.html
h2/src/docsrc/html/advanced.html
+1
-1
Parser.java
h2/src/main/org/h2/command/Parser.java
+13
-0
JdbcDatabaseMetaData.java
h2/src/main/org/h2/jdbc/JdbcDatabaseMetaData.java
+2
-2
MVMap.java
h2/src/main/org/h2/mvstore/MVMap.java
+1
-1
ParserUtil.java
h2/src/main/org/h2/util/ParserUtil.java
+13
-5
TestMetaData.java
h2/src/test/org/h2/test/jdbc/TestMetaData.java
+1
-1
没有找到文件。
h2/src/docsrc/html/advanced.html
浏览文件 @
801e2304
...
...
@@ -480,7 +480,7 @@ CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, DISTINCT, EXCEPT,
EXISTS, FALSE, FETCH, FOR, FOREIGN, FROM, FULL, GROUP, HAVING,
IF, INNER, INTERSECT, INTERSECTS, INTERVAL, IS, JOIN, LIKE,
LIMIT, LOCALTIME, LOCALTIMESTAMP, MINUS, NATURAL, NOT, NULL,
OFFSET, ON, ORDER, PRIMARY, QUALIFY, ROW, ROWNUM, SELECT,
OFFSET, ON, ORDER, PRIMARY, QUALIFY, ROW,
_ROWID_,
ROWNUM, SELECT,
SYSDATE, SYSTIME, SYSTIMESTAMP, TABLE, TODAY, TOP, TRUE, UNION,
UNIQUE, VALUES, WHERE, WINDOW, WITH
</code>
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/command/Parser.java
浏览文件 @
801e2304
...
...
@@ -61,6 +61,7 @@ import static org.h2.util.ParserUtil.VALUES;
import
static
org
.
h2
.
util
.
ParserUtil
.
WHERE
;
import
static
org
.
h2
.
util
.
ParserUtil
.
WINDOW
;
import
static
org
.
h2
.
util
.
ParserUtil
.
WITH
;
import
static
org
.
h2
.
util
.
ParserUtil
.
_ROWID_
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
...
...
@@ -511,6 +512,8 @@ public class Parser {
"QUALIFY"
,
// ROW
"ROW"
,
// _ROWID_
"_ROWID_"
,
// ROWNUM
"ROWNUM"
,
// SELECT
...
...
@@ -3808,6 +3811,9 @@ public class Parser {
if
(
expr
!=
null
)
{
return
expr
;
}
if
(
readIf
(
_ROWID_
))
{
return
new
ExpressionColumn
(
database
,
null
,
objectName
,
Column
.
ROWID
);
}
String
name
=
readColumnIdentifier
();
Schema
s
=
database
.
findSchema
(
objectName
);
if
(
readIf
(
OPEN_PAREN
))
{
...
...
@@ -3819,6 +3825,9 @@ public class Parser {
if
(
expr
!=
null
)
{
return
expr
;
}
if
(
readIf
(
_ROWID_
))
{
return
new
ExpressionColumn
(
database
,
schema
,
objectName
,
Column
.
ROWID
);
}
name
=
readColumnIdentifier
();
if
(
readIf
(
OPEN_PAREN
))
{
String
databaseName
=
schema
;
...
...
@@ -4050,6 +4059,10 @@ public class Parser {
read
();
r
=
ValueExpression
.
getNull
();
break
;
case
_ROWID_:
read
();
r
=
new
ExpressionColumn
(
database
,
null
,
null
,
Column
.
ROWID
);
break
;
case
VALUE:
r
=
ValueExpression
.
get
(
currentValue
);
read
();
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/jdbc/JdbcDatabaseMetaData.java
浏览文件 @
801e2304
...
...
@@ -1551,7 +1551,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements
* EXISTS, FALSE, FETCH, FOR, FOREIGN, FROM, FULL, GROUP, HAVING,
* IF, INNER, INTERSECT, INTERSECTS, INTERVAL, IS, JOIN, LIKE,
* LIMIT, LOCALTIME, LOCALTIMESTAMP, MINUS, NATURAL, NOT, NULL,
* OFFSET, ON, ORDER, PRIMARY, QUALIFY, ROW, ROWNUM, SELECT,
* OFFSET, ON, ORDER, PRIMARY, QUALIFY, ROW,
_ROWID_,
ROWNUM, SELECT,
* SYSDATE, SYSTIME, SYSTIMESTAMP, TABLE, TODAY, TOP, TRUE, UNION,
* UNIQUE, VALUES, WHERE, WINDOW, WITH
* </pre>
...
...
@@ -1561,7 +1561,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements
@Override
public
String
getSQLKeywords
()
{
debugCodeCall
(
"getSQLKeywords"
);
return
"IF,INTERSECTS,LIMIT,MINUS,OFFSET,QUALIFY,ROWNUM,SYSDATE,SYSTIME,SYSTIMESTAMP,TODAY,TOP"
;
return
"IF,INTERSECTS,LIMIT,MINUS,OFFSET,QUALIFY,
_ROWID_,
ROWNUM,SYSDATE,SYSTIME,SYSTIMESTAMP,TODAY,TOP"
;
}
/**
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/mvstore/MVMap.java
浏览文件 @
801e2304
...
...
@@ -1640,7 +1640,7 @@ public class MVMap<K, V> extends AbstractMap<K, V>
* Add, replace or remove a key-value pair.
*
* @param key the key (may not be null)
* @param value new value, it may be null when removal is in
d
ended
* @param value new value, it may be null when removal is in
t
ended
* @param decisionMaker command object to make choices during transaction.
* @return previous value, if mapping for that key existed, or null otherwise
*/
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/ParserUtil.java
浏览文件 @
801e2304
...
...
@@ -227,10 +227,15 @@ public class ParserUtil {
*/
public
static
final
int
ROW
=
QUALIFY
+
1
;
/**
* The token "_ROWID_".
*/
public
static
final
int
_ROWID_
=
ROW
+
1
;
/**
* The token "ROWNUM".
*/
public
static
final
int
ROWNUM
=
ROW
+
1
;
public
static
final
int
ROWNUM
=
_ROWID_
+
1
;
/**
* The token "SELECT".
...
...
@@ -352,10 +357,7 @@ public class ParserUtil {
*/
char
c
=
s
.
charAt
(
start
);
if
(
ignoreCase
)
{
/*
* Convert a-z to A-Z. This method is safe, because only A-Z
* characters are considered below.
*/
// Convert a-z to A-Z and 0x7f to _ (need special handling).
c
&=
0xffdf
;
}
switch
(
c
)
{
...
...
@@ -537,6 +539,12 @@ public class ParserUtil {
return
WITH
;
}
return
IDENTIFIER
;
case
'_'
:
// Cannot use eq() because 0x7f can be converted to '_' (0x5f)
if
(
end
-
start
==
7
&&
"_ROWID_"
.
regionMatches
(
ignoreCase
,
0
,
s
,
start
,
7
))
{
return
_ROWID_
;
}
//$FALL-THROUGH$
default
:
return
IDENTIFIER
;
}
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/jdbc/TestMetaData.java
浏览文件 @
801e2304
...
...
@@ -463,7 +463,7 @@ public class TestMetaData extends TestDb {
assertEquals
(
"schema"
,
meta
.
getSchemaTerm
());
assertEquals
(
"\\"
,
meta
.
getSearchStringEscape
());
assertEquals
(
"IF,INTERSECTS,LIMIT,MINUS,OFFSET,QUALIFY,ROWNUM,SYSDATE,SYSTIME,SYSTIMESTAMP,TODAY,TOP"
,
assertEquals
(
"IF,INTERSECTS,LIMIT,MINUS,OFFSET,QUALIFY,
_ROWID_,
ROWNUM,SYSDATE,SYSTIME,SYSTIMESTAMP,TODAY,TOP"
,
meta
.
getSQLKeywords
());
assertTrue
(
meta
.
getURL
().
startsWith
(
"jdbc:h2:"
));
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论