Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
c88020c0
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c88020c0
编写于
4月 18, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SQL formatter fix.
connect/disconnect error messages fix
上级
2a01f488
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
29 deletion
+40
-29
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/jobs/ConnectJob.java
...r.core/src/org/jkiss/dbeaver/runtime/jobs/ConnectJob.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/jobs/DisconnectJob.java
...ore/src/org/jkiss/dbeaver/runtime/jobs/DisconnectJob.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/format/tokenized/SQLTokenizedFormatter.java
...i/editors/sql/format/tokenized/SQLTokenizedFormatter.java
+36
-25
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/jobs/ConnectJob.java
浏览文件 @
c88020c0
...
...
@@ -82,9 +82,9 @@ public class ConnectJob extends EventProcessorJob
}
catch
(
Throwable
ex
)
{
log
.
error
(
ex
);
return
RuntimeUtils
.
makeExceptionStatus
(
return
RuntimeUtils
.
stripStack
(
RuntimeUtils
.
makeExceptionStatus
(
NLS
.
bind
(
CoreMessages
.
runtime_jobs_connect_status_error
,
container
.
getName
()),
ex
);
ex
)
)
;
}
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/jobs/DisconnectJob.java
浏览文件 @
c88020c0
...
...
@@ -52,9 +52,9 @@ public class DisconnectJob extends EventProcessorJob
return
Status
.
OK_STATUS
;
}
catch
(
Exception
ex
)
{
return
RuntimeUtils
.
makeExceptionStatus
(
return
RuntimeUtils
.
stripStack
(
RuntimeUtils
.
makeExceptionStatus
(
NLS
.
bind
(
CoreMessages
.
runtime_jobs_disconnect_error
,
container
.
getName
()),
ex
);
ex
)
)
;
}
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/format/tokenized/SQLTokenizedFormatter.java
浏览文件 @
c88020c0
...
...
@@ -19,6 +19,7 @@
package
org.jkiss.dbeaver.ui.editors.sql.format.tokenized
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLConstants
;
import
org.jkiss.dbeaver.ui.editors.sql.format.SQLFormatter
;
import
org.jkiss.dbeaver.ui.editors.sql.format.SQLFormatterConfiguration
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
...
...
@@ -33,11 +34,14 @@ import java.util.List;
public
class
SQLTokenizedFormatter
implements
SQLFormatter
{
private
SQLFormatterConfiguration
formatterCfg
;
private
List
<
Boolean
>
functionBracket
=
new
ArrayList
<
Boolean
>();
private
List
<
String
>
statementDelimiters
=
new
ArrayList
<
String
>(
2
);
@Override
public
String
format
(
final
String
argSql
,
SQLFormatterConfiguration
configuration
)
{
formatterCfg
=
configuration
;
statementDelimiters
.
add
(
SQLConstants
.
DEFAULT_STATEMENT_DELIMITER
);
statementDelimiters
.
add
(
formatterCfg
.
getSyntaxManager
().
getStatementDelimiter
().
toUpperCase
());
SQLTokensParser
fParser
=
new
SQLTokensParser
(
formatterCfg
);
functionBracket
.
clear
();
...
...
@@ -99,6 +103,7 @@ public class SQLTokenizedFormatter implements SQLFormatter {
}
}
// Remove extra tokens (spaces, etc)
for
(
int
index
=
argList
.
size
()
-
1
;
index
>=
1
;
index
--)
{
token
=
argList
.
get
(
index
);
FormatterToken
prevToken
=
argList
.
get
(
index
-
1
);
...
...
@@ -155,7 +160,7 @@ public class SQLTokenizedFormatter implements SQLFormatter {
functionBracket
.
remove
(
functionBracket
.
size
()
-
1
);
}
else
if
(
tokenString
.
equals
(
","
))
{
//$NON-NLS-1$
index
+=
insertReturnAndIndent
(
argList
,
index
+
1
,
indent
);
}
else
if
(
tokenString
.
equals
(
";"
))
{
//$NON-NLS-1$
}
else
if
(
statementDelimiters
.
contains
(
tokenString
))
{
//$NON-NLS-1$
indent
=
0
;
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
}
...
...
@@ -166,8 +171,7 @@ public class SQLTokenizedFormatter implements SQLFormatter {
{
indent
++;
index
+=
insertReturnAndIndent
(
argList
,
index
+
1
,
indent
);
}
if
(
tokenString
.
equals
(
"INSERT"
)
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"INSERT"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"INTO"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"CREATE"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"DROP"
)
//$NON-NLS-1$
...
...
@@ -176,8 +180,7 @@ public class SQLTokenizedFormatter implements SQLFormatter {
||
tokenString
.
equals
(
"CASE"
))
{
//$NON-NLS-1$
indent
++;
index
+=
insertReturnAndIndent
(
argList
,
index
+
1
,
indent
);
}
if
(
tokenString
.
equals
(
"FROM"
)
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"FROM"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"WHERE"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"SET"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"ORDER BY"
)
//$NON-NLS-1$
...
...
@@ -185,24 +188,19 @@ public class SQLTokenizedFormatter implements SQLFormatter {
||
tokenString
.
equals
(
"HAVING"
))
{
//$NON-NLS-1$
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
-
1
);
index
+=
insertReturnAndIndent
(
argList
,
index
+
1
,
indent
);
}
if
(
tokenString
.
equals
(
"VALUES"
))
{
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"VALUES"
))
{
//$NON-NLS-1$
indent
--;
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
}
if
(
tokenString
.
equals
(
"END"
))
{
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"END"
))
{
//$NON-NLS-1$
indent
--;
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
}
if
(
tokenString
.
equals
(
"OR"
)
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"OR"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"THEN"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"ELSE"
))
{
//$NON-NLS-1$
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
}
if
(
tokenString
.
equals
(
"ON"
)
||
tokenString
.
equals
(
"USING"
))
{
//$NON-NLS-1$ //$NON-NLS-2$
}
else
if
(
tokenString
.
equals
(
"ON"
)
||
tokenString
.
equals
(
"USING"
))
{
//$NON-NLS-1$ //$NON-NLS-2$
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
+
1
);
}
if
(
tokenString
.
equals
(
"UNION"
)
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"UNION"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"INTERSECT"
)
//$NON-NLS-1$
||
tokenString
.
equals
(
"EXCEPT"
))
//$NON-NLS-1$
{
...
...
@@ -210,11 +208,9 @@ public class SQLTokenizedFormatter implements SQLFormatter {
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
//index += insertReturnAndIndent(argList, index + 1, indent);
indent
++;
}
if
(
tokenString
.
equals
(
"BETWEEN"
))
{
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"BETWEEN"
))
{
//$NON-NLS-1$
encounterBetween
=
true
;
}
if
(
tokenString
.
equals
(
"AND"
))
{
//$NON-NLS-1$
}
else
if
(
tokenString
.
equals
(
"AND"
))
{
//$NON-NLS-1$
if
(!
encounterBetween
)
{
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
}
...
...
@@ -227,6 +223,11 @@ public class SQLTokenizedFormatter implements SQLFormatter {
index
+=
insertReturnAndIndent
(
argList
,
index
+
1
,
indent
);
}
}
}
else
{
if
(
statementDelimiters
.
contains
(
tokenString
))
{
indent
=
0
;
index
+=
insertReturnAndIndent
(
argList
,
index
,
indent
);
}
}
prev
=
token
;
}
...
...
@@ -262,7 +263,7 @@ public class SQLTokenizedFormatter implements SQLFormatter {
token
.
getType
()
!=
FormatterConstants
.
SPACE
&&
!
token
.
getString
().
startsWith
(
"("
))
{
if
(
prev
.
getString
().
equals
(
","
))
{
//$NON-NLS-1$
if
(
token
.
getString
().
equals
(
","
)
||
statementDelimiters
.
contains
(
token
.
getString
()
))
{
//$NON-NLS-1$
continue
;
}
if
(
formatterCfg
.
isFunction
(
prev
.
getString
())
...
...
@@ -299,13 +300,23 @@ public class SQLTokenizedFormatter implements SQLFormatter {
token
.
setString
(
s
);
return
0
;
}
boolean
isDelimiter
=
statementDelimiters
.
contains
(
token
.
getString
().
toUpperCase
());
token
=
argList
.
get
(
argIndex
-
1
);
if
(
token
.
getType
()
==
FormatterConstants
.
SPACE
)
{
token
.
setString
(
s
);
return
0
;
if
(!
isDelimiter
)
{
token
=
argList
.
get
(
argIndex
-
1
);
if
(
token
.
getType
()
==
FormatterConstants
.
SPACE
)
{
token
.
setString
(
s
);
return
0
;
}
}
if
(
isDelimiter
)
{
if
(
argList
.
size
()
>
argIndex
+
1
)
{
argList
.
add
(
argIndex
+
1
,
new
FormatterToken
(
FormatterConstants
.
SPACE
,
s
+
s
));
}
}
else
{
argList
.
add
(
argIndex
,
new
FormatterToken
(
FormatterConstants
.
SPACE
,
s
));
}
argList
.
add
(
argIndex
,
new
FormatterToken
(
FormatterConstants
.
SPACE
,
s
));
return
1
;
}
catch
(
IndexOutOfBoundsException
e
)
{
// e.printStackTrace();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录