Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
c99b31fe
提交
c99b31fe
authored
8月 28, 2018
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use custom error code
上级
d071dcec
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
44 行增加
和
20 行删除
+44
-20
ErrorCode.java
h2/src/main/org/h2/api/ErrorCode.java
+12
-0
Parser.java
h2/src/main/org/h2/command/Parser.java
+4
-8
DbException.java
h2/src/main/org/h2/message/DbException.java
+16
-0
_messages_cs.prop
h2/src/main/org/h2/res/_messages_cs.prop
+1
-1
_messages_de.prop
h2/src/main/org/h2/res/_messages_de.prop
+1
-1
_messages_en.prop
h2/src/main/org/h2/res/_messages_en.prop
+1
-1
_messages_es.prop
h2/src/main/org/h2/res/_messages_es.prop
+1
-1
_messages_fr.prop
h2/src/main/org/h2/res/_messages_fr.prop
+1
-1
_messages_ja.prop
h2/src/main/org/h2/res/_messages_ja.prop
+1
-1
_messages_pl.prop
h2/src/main/org/h2/res/_messages_pl.prop
+1
-1
_messages_pt_br.prop
h2/src/main/org/h2/res/_messages_pt_br.prop
+1
-1
_messages_ru.prop
h2/src/main/org/h2/res/_messages_ru.prop
+1
-1
_messages_sk.prop
h2/src/main/org/h2/res/_messages_sk.prop
+1
-1
_messages_zh_cn.prop
h2/src/main/org/h2/res/_messages_zh_cn.prop
+1
-1
mode.sql
h2/src/test/org/h2/test/scripts/functions/aggregate/mode.sql
+1
-1
没有找到文件。
h2/src/main/org/h2/api/ErrorCode.java
浏览文件 @
c99b31fe
...
...
@@ -402,6 +402,17 @@ public class ErrorCode {
*/
public
static
final
int
COLUMN_NOT_FOUND_1
=
42122
;
/**
* The error with code <code>42123</code> is thrown when
* identical expressions should be used, but different
* exceptions were found.
* Example:
* <pre>
* SELECT MODE(A ORDER BY B) FROM TEST;
* </pre>
*/
public
static
final
int
IDENTICAL_EXPRESSIONS_SHOULD_BE_USED
=
42131
;
// 0A: feature not supported
// HZ: remote database access
...
...
@@ -2068,6 +2079,7 @@ public class ErrorCode {
case
INDEX_NOT_FOUND_1:
return
"42S12"
;
case
DUPLICATE_COLUMN_NAME_1:
return
"42S21"
;
case
COLUMN_NOT_FOUND_1:
return
"42S22"
;
case
IDENTICAL_EXPRESSIONS_SHOULD_BE_USED:
return
"42S31"
;
// 0A: feature not supported
...
...
h2/src/main/org/h2/command/Parser.java
浏览文件 @
c99b31fe
...
...
@@ -2983,14 +2983,10 @@ public class Parser {
if
(
readIf
(
ORDER
))
{
read
(
"BY"
);
Expression
expr2
=
readExpression
();
String
sql
=
expr
.
getSQL
();
if
(!
sql
.
equals
(
expr2
.
getSQL
()))
{
parseIndex
=
lastParseIndex
;
if
(
expectedList
!=
null
)
{
expectedList
.
clear
();
expectedList
.
add
(
sql
);
}
throw
getSyntaxError
();
String
sql
=
expr
.
getSQL
(),
sql2
=
expr2
.
getSQL
();
if
(!
sql
.
equals
(
sql2
))
{
throw
DbException
.
getSyntaxError
(
ErrorCode
.
IDENTICAL_EXPRESSIONS_SHOULD_BE_USED
,
sqlCommand
,
lastParseIndex
,
sql
,
sql2
);
}
setModeAggOrder
(
r
,
expr
);
}
...
...
h2/src/main/org/h2/message/DbException.java
浏览文件 @
c99b31fe
...
...
@@ -237,6 +237,22 @@ public class DbException extends RuntimeException {
null
,
sql
,
message
));
}
/**
* Create a syntax error exception for a specific error code.
*
* @param errorCode the error code
* @param sql the SQL statement
* @param index the position of the error in the SQL statement
* @param params the list of parameters of the message
* @return the exception
*/
public
static
DbException
getSyntaxError
(
int
errorCode
,
String
sql
,
int
index
,
String
...
params
)
{
sql
=
StringUtils
.
addAsterisk
(
sql
,
index
);
String
sqlstate
=
ErrorCode
.
getState
(
errorCode
);
String
message
=
translate
(
sqlstate
,
params
);
return
new
DbException
(
getJdbcSQLException
(
message
,
sql
,
sqlstate
,
errorCode
,
null
,
null
));
}
/**
* Gets a SQL exception meaning this feature is not supported.
*
...
...
h2/src/main/org/h2/res/_messages_cs.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Index {0} nenalezen
42S21=Duplicitní název sloupce {0}
42S22=Sloupec {0} nenalezen
42S3
2=Nastavení {0} nenalezeno
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=Příkaz byl zrušen nebo připojení vypršelo
90000=Funkce {0} musí vracet výsledek
90001=Metoda neumožňuje dotazování. Použijte execute nebo executeQuery namísto executeUpdate
...
...
h2/src/main/org/h2/res/_messages_de.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Index {0} nicht gefunden
42S21=Doppelter Feldname {0}
42S22=Feld {0} nicht gefunden
42S3
2=Einstellung {0} nicht gefunden
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=Befehl wurde abgebrochen oder das Session-Timeout ist abgelaufen
90000=Funktion {0} muss Zeilen zurückgeben
90001=Methode nicht zulässig für eine Abfrage. Erlaubt sind execute oder executeQuery, nicht jedoch executeUpdate
...
...
h2/src/main/org/h2/res/_messages_en.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Index {0} not found
42S21=Duplicate column name {0}
42S22=Column {0} not found
42S3
2=Setting {0} not found
42S3
1=Identical expressions should be used; expected {0}, found {1}
57014=Statement was canceled or the session timed out
90000=Function {0} must return a result set
90001=Method is not allowed for a query. Use execute or executeQuery instead of executeUpdate
...
...
h2/src/main/org/h2/res/_messages_es.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Indice {0} no encontrado
42S21=Nombre de columna Duplicada {0}
42S22=Columna {0} no encontrada
42S3
2=Setting {0} no encontrado
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=Ls sentencia fue cancelado ó la sesión expiró por tiempo vencido
90000=Función {0} debe devolver un set de resultados (ResultSet)
90001=Metodo no permitido en un query. Use execute ó executeQuery en lugar de executeUpdate
...
...
h2/src/main/org/h2/res/_messages_fr.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Index {0} non trouvé
42S21=Duplication du nom de colonnes {0}
42S22=Colonne {0} non trouvée
42S3
2=Paramètre {0} non trouvé
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=L'instruction a été annulée ou la session a expiré
90000=La fonction {0} doit retourner résultat
90001=Methode non autorisée pour une requête. Utilisez execute ou executeQuery à la place d'executeUpdate
...
...
h2/src/main/org/h2/res/_messages_ja.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=インデックス {0} が見つかりません
42S21=列名 {0} が重複しています
42S22=列 {0} が見つかりません
42S3
2=設定 {0} が見つかりません
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=ステートメントがキャンセルされたか、セッションがタイムアウトしました
90000=関数 {0} はリザルトセットを返さなければなりません
90001=メソッドはクエリをサポートしていません。executeUpdateのかわりに、excute、またはexecuteQueryを使用してください
...
...
h2/src/main/org/h2/res/_messages_pl.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Indeks {0} nie istnieje
42S21=Zduplikowana nazwa kolumny {0}
42S22=Kolumna {0} nie istnieje
42S3
2=Ustawienie {0} nie istnieje
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=Kwerenda została anulowana albo sesja wygasła
90000=Funkcja {0} musi zwrócić dane
90001=Metoda nie jest dozwolona w kwerendzie
...
...
h2/src/main/org/h2/res/_messages_pt_br.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=índice {0} não foi encontrado
42S21=Nome duplicado da coluna {0}
42S22=Coluna {0} não foi encontrada
42S3
2=Definição {0} não foi encontrada
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=#Statement was canceled or the session timed out
90000=Função {0} deve retornar algum resultado
90001=O método não esta hábilitado para consulta. Use o execute ou o executeQuery em vez de executeUpdate
...
...
h2/src/main/org/h2/res/_messages_ru.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Индекс {0} не найден
42S21=Повтор имени столбца {0}
42S22=Столбец {0} не найден
42S3
2=Настройка {0} не найдена
42S3
1=Должны использоваться идентичные выражения; ожидалось {0}, получено {1}
57014=Запрос был отменен или закончилось время ожидания сессии
90000=Функция {0} должна возвращать набор записей
90001=Метод не разрешен для запросов. Используйте execute или executeQuery вместо executeUpdate
...
...
h2/src/main/org/h2/res/_messages_sk.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=Index {0} nenájdený
42S21=Duplicitné meno stĺpca {0}
42S22=Stĺpec {0} nenájdený
42S3
2=Nastavenie {0} nenájdené
42S3
1=#Identical expressions should be used; expected {0}, found {1}
57014=Príkaz bol zrušený alebo vypršal časový limit sedenia
90000=Funkcia {0} musí vracať výsledok (result set)
90001=Metóda nie je povolená pre dopyt (query). Použite execute alebo executeQuery namiesto executeUpdate
...
...
h2/src/main/org/h2/res/_messages_zh_cn.prop
浏览文件 @
c99b31fe
...
...
@@ -31,7 +31,7 @@
42S12=找不到索引 {0}
42S21=重复的字段: {0}
42S22=找不到字段 {0}
42S3
2=找不到设置 {0
}
42S3
1=#Identical expressions should be used; expected {0}, found {1
}
57014=语句已取消执行或会话已过期
90000={0} 函数必须返回一个结果集
90001=不允许在查询内使用的方法,使用execute 或 executeQuery 代替 executeUpdate
...
...
h2/src/test/org/h2/test/scripts/functions/aggregate/mode.sql
浏览文件 @
c99b31fe
...
...
@@ -44,7 +44,7 @@ SELECT MODE(V ORDER BY V DESC) FROM TEST;
>>
3
SELECT
MODE
(
V
ORDER
BY
V
+
1
)
FROM
TEST
;
>
exception
SYNTAX_ERROR_2
>
exception
IDENTICAL_EXPRESSIONS_SHOULD_BE_USED
SELECT
MODE
()
WITHIN
GROUP
(
ORDER
BY
V
)
FROM
TEST
;
>>
1
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论