Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8cbe0522
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
8cbe0522
编写于
5月 13, 2021
作者:
N
Nikita Akilov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#11289 do not trigger transaction start in smart commit mode on explain statement
上级
21edbefe
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
30 addition
and
14 deletion
+30
-14
bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java
bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java
+8
-0
plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2Utils.java
...eaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2Utils.java
+3
-2
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDialect.java
...l/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDialect.java
+3
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/AbstractSQLDialect.java
.../org/jkiss/dbeaver/model/impl/sql/AbstractSQLDialect.java
+3
-8
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/BasicSQLDialect.java
...src/org/jkiss/dbeaver/model/impl/sql/BasicSQLDialect.java
+11
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLConstants.java
...r.model/src/org/jkiss/dbeaver/model/sql/SQLConstants.java
+2
-0
未找到文件。
bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java
浏览文件 @
8cbe0522
...
...
@@ -875,4 +875,12 @@ public class CommonUtils {
return
radix
>
ch
-
'A'
+
10
;
return
false
;
}
@NotNull
@SafeVarargs
public
static
<
T
>
Set
<
T
>
unmodifiableSet
(
@NotNull
T
...
vararg
)
{
Set
<
T
>
set
=
new
HashSet
<>(
vararg
.
length
*
4
/
3
+
1
);
//Adjusting to account for the default load factor
set
.
addAll
(
Arrays
.
asList
(
vararg
));
return
Collections
.
unmodifiableSet
(
set
);
}
}
plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2Utils.java
浏览文件 @
8cbe0522
...
...
@@ -36,6 +36,7 @@ import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.format.SQLFormatUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -250,7 +251,7 @@ public class DB2Utils {
try
(
JDBCSession
session
=
DBUtils
.
openMetaSession
(
monitor
,
dataSource
,
"Verify EXPLAIN tables"
))
{
// First Check with given schema
try
(
JDBCCallableStatement
stmtSP
=
session
.
prepareCall
(
CALL_INST_OBJ
))
{
stmtSP
.
setString
(
1
,
"EXPLAIN"
);
// EXPLAIN
stmtSP
.
setString
(
1
,
SQLConstants
.
KEYWORD_EXPLAIN
);
// EXPLAIN
stmtSP
.
setString
(
2
,
"V"
);
// Verify
stmtSP
.
setString
(
3
,
""
);
// Tablespace
stmtSP
.
setString
(
4
,
explainTableSchemaName
);
// Schema
...
...
@@ -280,7 +281,7 @@ public class DB2Utils {
try
(
JDBCSession
session
=
DBUtils
.
openMetaSession
(
monitor
,
dataSource
,
"Create EXPLAIN tables"
))
{
try
(
JDBCCallableStatement
stmtSP
=
session
.
prepareCall
(
CALL_INST_OBJ
))
{
stmtSP
.
setString
(
1
,
"EXPLAIN"
);
// EXPLAIN
stmtSP
.
setString
(
1
,
SQLConstants
.
KEYWORD_EXPLAIN
);
// EXPLAIN
stmtSP
.
setString
(
2
,
"C"
);
// Create
stmtSP
.
setString
(
3
,
tablespaceName
);
// Tablespace
stmtSP
.
setString
(
4
,
explainTableSchemaName
);
// Schema
...
...
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDialect.java
浏览文件 @
8cbe0522
...
...
@@ -24,6 +24,7 @@ import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCSQLDialect
;
import
org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.model.struct.DBSAttributeBase
;
import
org.jkiss.utils.ArrayUtils
;
...
...
@@ -41,7 +42,7 @@ class MySQLDialect extends JDBCSQLDialect {
new
String
[]{
"USE"
,
"SHOW"
,
"CREATE"
,
"ALTER"
,
"DROP"
,
"EXPLAIN"
,
"DESCRIBE"
,
"DESC"
}
SQLConstants
.
KEYWORD_EXPLAIN
,
"DESCRIBE"
,
"DESC"
}
);
private
static
final
String
[]
ADVANCED_KEYWORDS
=
{
...
...
@@ -120,7 +121,7 @@ class MySQLDialect extends JDBCSQLDialect {
this
.
setSupportsUnquotedMixedCase
(
lowerCaseTableNames
!=
2
);
//addSQLKeyword("STATISTICS");
Collections
.
addAll
(
tableQueryWords
,
"EXPLAIN"
,
"DESCRIBE"
,
"DESC"
);
Collections
.
addAll
(
tableQueryWords
,
SQLConstants
.
KEYWORD_EXPLAIN
,
"DESCRIBE"
,
"DESC"
);
addFunctions
(
Arrays
.
asList
(
"SLEEP"
));
for
(
String
kw
:
ADVANCED_KEYWORDS
)
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/AbstractSQLDialect.java
浏览文件 @
8cbe0522
...
...
@@ -48,6 +48,8 @@ public abstract class AbstractSQLDialect implements SQLDialect {
private
static
final
String
[]
QUERY_KEYWORDS
=
new
String
[]
{
SQLConstants
.
KEYWORD_SELECT
};
private
static
final
String
[]
EXEC_KEYWORDS
=
new
String
[
0
];
private
static
final
String
[]
DDL_KEYWORDS
=
new
String
[
0
];
private
static
final
Collection
<
String
>
TRANSACTION_NON_MODIFYING_KEYWORDS
=
CommonUtils
.
unmodifiableSet
(
SQLConstants
.
KEYWORD_SELECT
,
"SHOW"
,
"USE"
,
"SET"
,
SQLConstants
.
KEYWORD_EXPLAIN
);
public
static
final
String
[][]
DEFAULT_IDENTIFIER_QUOTES
=
{{
"\""
,
"\""
}};
public
static
final
String
[][]
DEFAULT_STRING_QUOTES
=
{{
"'"
,
"'"
}};
...
...
@@ -598,14 +600,7 @@ public abstract class AbstractSQLDialect implements SQLDialect {
if
(
getKeywordType
(
firstKeyword
)
!=
DBPKeywordType
.
KEYWORD
)
{
return
false
;
}
if
(
SQLConstants
.
KEYWORD_SELECT
.
equals
(
firstKeyword
)
||
"SHOW"
.
equals
(
firstKeyword
)
||
"USE"
.
equals
(
firstKeyword
)
||
"SET"
.
equals
(
firstKeyword
))
{
return
false
;
}
return
true
;
return
!
TRANSACTION_NON_MODIFYING_KEYWORDS
.
contains
(
firstKeyword
);
}
private
static
boolean
containsKeyword
(
String
[]
keywords
,
String
keyword
)
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/BasicSQLDialect.java
浏览文件 @
8cbe0522
...
...
@@ -52,9 +52,18 @@ public class BasicSQLDialect extends AbstractSQLDialect implements RelationalSQL
SQLConstants
.
BLOCK_END
}
};
protected
static
final
String
[]
NON_TRANSACTIONAL_KEYWORDS
=
new
String
[]{
protected
static
final
String
[]
NON_TRANSACTIONAL_KEYWORDS
=
{
SQLConstants
.
KEYWORD_SELECT
,
"EXPLAIN"
,
"DESCRIBE"
,
"DESC"
,
"USE"
,
"SET"
,
"COMMIT"
,
"ROLLBACK"
};
SQLConstants
.
KEYWORD_EXPLAIN
,
"DESCRIBE"
,
"DESC"
,
"USE"
,
"SET"
,
SQLConstants
.
KEYWORD_COMMIT
,
SQLConstants
.
KEYWORD_ROLLBACK
};
private
static
final
String
[]
CORE_NON_TRANSACTIONAL_KEYWORDS
=
new
String
[]{
SQLConstants
.
KEYWORD_SELECT
,
};
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLConstants.java
浏览文件 @
8cbe0522
...
...
@@ -65,6 +65,8 @@ public class SQLConstants {
public
static
final
String
KEYWORD_COMMIT
=
"COMMIT"
;
public
static
final
String
KEYWORD_ROLLBACK
=
"ROLLBACK"
;
public
static
final
String
KEYWORD_EXPLAIN
=
"EXPLAIN"
;
public
static
final
String
[]
TABLE_KEYWORDS
=
{
KEYWORD_FROM
,
KEYWORD_UPDATE
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录