Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
274e1565
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,发现更多精彩内容 >>
提交
274e1565
编写于
12月 27, 2019
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#1562 Auto-commit mode model
上级
11d1d336
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
61 addition
and
33 deletion
+61
-33
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageInitialization.java
...r/ui/dialogs/connection/ConnectionPageInitialization.java
+1
-1
plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/stream/model/StreamDataSourceContainer.java
...ools/transfer/stream/model/StreamDataSourceContainer.java
+1
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPAutoCommitMode.java
....model/src/org/jkiss/dbeaver/model/DBPAutoCommitMode.java
+26
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java
...l/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java
+1
-3
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/struct/JDBCTable.java
...c/org/jkiss/dbeaver/model/impl/jdbc/struct/JDBCTable.java
+2
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/BasicSQLDialect.java
...src/org/jkiss/dbeaver/model/impl/sql/BasicSQLDialect.java
+18
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLConstants.java
...r.model/src/org/jkiss/dbeaver/model/sql/SQLConstants.java
+11
-5
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
.../src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+1
-19
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageInitialization.java
浏览文件 @
274e1565
...
...
@@ -327,7 +327,7 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
return
;
}
try
{
dataSource
.
setDefaultAutoCommit
(
autocommit
.
getSelection
()
,
null
,
true
,
null
);
dataSource
.
setDefaultAutoCommit
(
autocommit
.
getSelection
());
if
(
txnOptionsLoaded
)
{
int
levelIndex
=
isolationLevel
.
getSelectionIndex
();
if
(
levelIndex
<=
0
)
{
...
...
plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/stream/model/StreamDataSourceContainer.java
浏览文件 @
274e1565
...
...
@@ -30,7 +30,6 @@ import org.jkiss.dbeaver.model.connection.DBPDriver;
import
org.jkiss.dbeaver.model.connection.DBPNativeClientLocation
;
import
org.jkiss.dbeaver.model.data.DBDDataFormatterProfile
;
import
org.jkiss.dbeaver.model.data.DBDValueHandler
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.impl.data.DefaultValueHandler
;
import
org.jkiss.dbeaver.model.net.DBWNetworkHandler
;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceStore
;
...
...
@@ -158,7 +157,7 @@ class StreamDataSourceContainer implements DBPDataSourceContainer {
}
@Override
public
void
setDefaultAutoCommit
(
boolean
autoCommit
,
@Nullable
DBCExecutionContext
updateContext
,
boolean
updateConnection
,
@Nullable
Runnable
onFinish
)
throws
DBException
{
public
void
setDefaultAutoCommit
(
boolean
autoCommit
)
{
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPAutoCommitMode.java
0 → 100644
浏览文件 @
274e1565
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jkiss.dbeaver.model
;
/**
* Auto-commit mode
*/
public
enum
DBPAutoCommitMode
{
ON
,
OFF
,
SMART
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java
浏览文件 @
274e1565
...
...
@@ -27,7 +27,6 @@ import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import
org.jkiss.dbeaver.model.connection.DBPDriver
;
import
org.jkiss.dbeaver.model.connection.DBPNativeClientLocation
;
import
org.jkiss.dbeaver.model.data.DBDPreferences
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.net.DBWNetworkHandler
;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
...
...
@@ -102,8 +101,7 @@ public interface DBPDataSourceContainer extends DBSObject, DBDPreferences, DBPNa
boolean
isDefaultAutoCommit
();
void
setDefaultAutoCommit
(
boolean
autoCommit
,
@Nullable
DBCExecutionContext
updateContext
,
boolean
updateConnection
,
@Nullable
Runnable
onFinish
)
throws
DBException
;
void
setDefaultAutoCommit
(
boolean
autoCommit
);
@Nullable
DBPTransactionIsolation
getActiveTransactionsIsolation
();
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/struct/JDBCTable.java
浏览文件 @
274e1565
...
...
@@ -33,6 +33,7 @@ import org.jkiss.dbeaver.model.impl.struct.AbstractTable;
import
org.jkiss.dbeaver.model.messages.ModelMessages
;
import
org.jkiss.dbeaver.model.meta.Property
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.SQLDataSource
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.model.sql.SQLUtils
;
...
...
@@ -318,7 +319,7 @@ public abstract class JDBCTable<DATASOURCE extends DBPDataSource, CONTAINER exte
String
tableName
=
DBUtils
.
getEntityScriptName
(
JDBCTable
.
this
,
options
);
StringBuilder
query
=
new
StringBuilder
(
200
);
query
.
append
(
useUpsert
(
session
)
?
"UPSERT"
:
"INSERT"
)
.
append
(
useUpsert
(
session
)
?
SQLConstants
.
KEYWORD_UPSERT
:
SQLConstants
.
KEYWORD_INSERT
)
.
append
(
" INTO "
).
append
(
tableName
).
append
(
" ("
);
//$NON-NLS-1$ //$NON-NLS-2$
allNulls
=
true
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/BasicSQLDialect.java
浏览文件 @
274e1565
...
...
@@ -61,6 +61,13 @@ public class BasicSQLDialect implements SQLDialect {
private
static
final
String
[]
CORE_NON_TRANSACTIONAL_KEYWORDS
=
new
String
[]{
SQLConstants
.
KEYWORD_SELECT
,
};
protected
static
final
String
[]
TRANSACTIONAL_KEYWORDS
=
new
String
[]{
SQLConstants
.
KEYWORD_INSERT
,
SQLConstants
.
KEYWORD_DELETE
,
SQLConstants
.
KEYWORD_UPDATE
,
SQLConstants
.
KEYWORD_MERGE
,
SQLConstants
.
KEYWORD_UPSERT
,
SQLConstants
.
KEYWORD_TRUNCATE
};
public
static
final
String
[][]
DEFAULT_IDENTIFIER_QUOTES
=
{{
"\""
,
"\""
}};
public
static
final
String
[][]
DEFAULT_STRING_QUOTES
=
{{
"'"
,
"'"
}};
...
...
@@ -451,8 +458,12 @@ public class BasicSQLDialect implements SQLDialect {
// anyhow it shouldn't be transactional
return
false
;
}
String
[]
ntk
=
getDDLKeywords
();
for
(
String
keyword
:
ntk
)
{
for
(
String
keyword
:
getDDLKeywords
())
{
if
(
queryString
.
startsWith
(
keyword
))
{
return
!
ArrayUtils
.
contains
(
getNonTransactionKeywords
(),
keyword
);
}
}
for
(
String
keyword
:
getTransactionKeywords
())
{
if
(
queryString
.
startsWith
(
keyword
))
{
return
true
;
}
...
...
@@ -460,6 +471,11 @@ public class BasicSQLDialect implements SQLDialect {
return
false
;
}
@NotNull
protected
String
[]
getTransactionKeywords
()
{
return
isStandardSQL
()
?
TRANSACTIONAL_KEYWORDS
:
new
String
[
0
];
}
@NotNull
protected
String
[]
getNonTransactionKeywords
()
{
return
isStandardSQL
()
?
NON_TRANSACTIONAL_KEYWORDS
:
CORE_NON_TRANSACTIONAL_KEYWORDS
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLConstants.java
浏览文件 @
274e1565
...
...
@@ -31,8 +31,14 @@ public class SQLConstants {
public
static
final
String
ML_COMMENT_END
=
"*/"
;
public
static
final
String
SL_COMMENT
=
"--"
;
public
static
final
String
KEYWORD_UPDATE
=
"UPDATE"
;
public
static
final
String
KEYWORD_SELECT
=
"SELECT"
;
public
static
final
String
KEYWORD_INSERT
=
"INSERT"
;
public
static
final
String
KEYWORD_UPDATE
=
"UPDATE"
;
public
static
final
String
KEYWORD_DELETE
=
"DELETE"
;
public
static
final
String
KEYWORD_MERGE
=
"MERGE"
;
public
static
final
String
KEYWORD_UPSERT
=
"UPSERT"
;
public
static
final
String
KEYWORD_TRUNCATE
=
"TRUNCATE"
;
public
static
final
String
KEYWORD_FROM
=
"FROM"
;
public
static
final
String
KEYWORD_INTO
=
"INTO"
;
public
static
final
String
KEYWORD_JOIN
=
"JOIN"
;
...
...
@@ -123,7 +129,7 @@ public class SQLConstants {
"DEC"
,
"DECLARE"
,
"DEFAULT"
,
"DELETE"
,
KEYWORD_DELETE
,
"DENSE_RANK"
,
"DEREF"
,
"DESCRIBE"
,
...
...
@@ -172,7 +178,7 @@ public class SQLConstants {
"INNER"
,
"INOUT"
,
"INSENSITIVE"
,
"INSERT"
,
KEYWORD_INSERT
,
"INTERSECT"
,
"INTERSECTION"
,
"INTERVAL"
,
...
...
@@ -190,7 +196,7 @@ public class SQLConstants {
"LOCALTIMESTAMP"
,
"MATCH"
,
"MEMBER"
,
"MERGE"
,
KEYWORD_MERGE
,
"METHOD"
,
"MINUTE"
,
"MOD"
,
...
...
@@ -291,7 +297,7 @@ public class SQLConstants {
"UNIQUE"
,
"UNKNOWN"
,
"UNNEST"
,
"UPDATE"
,
KEYWORD_UPDATE
,
"USER"
,
"USING"
,
//"VALUE", // too common for column names
...
...
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
浏览文件 @
274e1565
...
...
@@ -381,25 +381,7 @@ public class DataSourceDescriptor
}
@Override
public
void
setDefaultAutoCommit
(
final
boolean
autoCommit
,
@Nullable
DBCExecutionContext
updateContext
,
boolean
updateConnection
,
@Nullable
final
Runnable
onFinish
)
throws
DBException
{
if
(
updateContext
!=
null
)
{
final
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
updateContext
);
if
(
updateConnection
&&
txnManager
!=
null
)
{
TasksJob
.
runTask
(
"Set auto-commit mode"
,
monitor
->
{
try
{
// Change auto-commit mode
txnManager
.
setAutoCommit
(
monitor
,
autoCommit
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
monitor
.
done
();
if
(
onFinish
!=
null
)
{
onFinish
.
run
();
}
}
});
}
}
public
void
setDefaultAutoCommit
(
final
boolean
autoCommit
)
{
// Save in preferences
if
(
autoCommit
==
getConnectionConfiguration
().
getConnectionType
().
isAutocommit
())
{
connectionInfo
.
getBootstrap
().
setDefaultAutoCommit
(
null
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录