Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
90f30309
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,发现更多精彩内容 >>
提交
90f30309
编写于
5月 25, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use isolated execution contexts in SQL editor
上级
96877500
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
75 addition
and
12 deletion
+75
-12
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java
...beaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
...org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/struct/DBSDataSourceContainer.java
...rg/jkiss/dbeaver/model/struct/DBSDataSourceContainer.java
+2
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
.../src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+3
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/DataSourceAutoCommitHandler.java
...er/ui/actions/datasource/DataSourceAutoCommitHandler.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
.../dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
....core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
+52
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
...jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
+14
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java
浏览文件 @
90f30309
...
...
@@ -56,6 +56,7 @@ public final class DBeaverPreferences
public
static
final
String
READ_EXPENSIVE_PROPERTIES
=
"database.props.expensive"
;
//$NON-NLS-1$
public
static
final
String
META_SEPARATE_CONNECTION
=
"database.meta.separate.connection"
;
//$NON-NLS-1$
public
static
final
String
META_CASE_SENSITIVE
=
"database.meta.casesensitive"
;
//$NON-NLS-1$
public
static
final
String
EDITOR_SEPARATE_CONNECTION
=
"database.editor.separate.connection"
;
//$NON-NLS-1$
public
static
final
String
TEXT_EDIT_UNDO_LEVEL
=
"text.edit.undo.level"
;
//$NON-NLS-1$
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
浏览文件 @
90f30309
...
...
@@ -98,6 +98,7 @@ public class DBeaverPreferencesInitializer extends AbstractPreferenceInitializer
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
READ_EXPENSIVE_PROPERTIES
,
false
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
META_SEPARATE_CONNECTION
,
true
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
META_CASE_SENSITIVE
,
false
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
EDITOR_SEPARATE_CONNECTION
,
false
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RS_EDIT_USE_ALL_COLUMNS
,
false
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RS_EDIT_MAX_TEXT_SIZE
,
10
*
1000000
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/struct/DBSDataSourceContainer.java
浏览文件 @
90f30309
...
...
@@ -23,6 +23,7 @@ import org.jkiss.code.Nullable;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.model.data.DBDPreferences
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.virtual.DBVModel
;
...
...
@@ -67,7 +68,7 @@ public interface DBSDataSourceContainer extends DBSObject, DBDPreferences
boolean
isDefaultAutoCommit
();
void
setDefaultAutoCommit
(
boolean
autoCommit
,
boolean
updateConnection
);
void
setDefaultAutoCommit
(
boolean
autoCommit
,
DBCExecutionContext
updateContext
,
boolean
updateConnection
);
@Nullable
DBPTransactionIsolation
getDefaultTransactionsIsolation
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
浏览文件 @
90f30309
...
...
@@ -298,10 +298,10 @@ public class DataSourceDescriptor
}
@Override
public
void
setDefaultAutoCommit
(
final
boolean
autoCommit
,
boolean
updateConnection
)
public
void
setDefaultAutoCommit
(
final
boolean
autoCommit
,
DBCExecutionContext
updateContext
,
boolean
updateConnection
)
{
if
(
dataSource
!=
null
)
{
final
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
dataSource
.
getDefaultContext
(
false
)
);
if
(
updateContext
!=
null
)
{
final
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
updateContext
);
if
(
updateConnection
&&
txnManager
!=
null
)
{
try
{
DBeaverUI
.
runInProgressDialog
(
new
DBRRunnableWithProgress
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/DataSourceAutoCommitHandler.java
浏览文件 @
90f30309
...
...
@@ -50,7 +50,7 @@ public class DataSourceAutoCommitHandler extends DataSourceHandler implements IE
// Get flag from connection
newAutocommit
=
!
txnManager
.
isAutoCommit
();
}
container
.
setDefaultAutoCommit
(
newAutocommit
,
true
);
container
.
setDefaultAutoCommit
(
newAutocommit
,
context
,
true
);
container
.
persistConfiguration
();
}
catch
(
DBCException
e
)
{
log
.
warn
(
"Error changing auto-commit state"
,
e
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
浏览文件 @
90f30309
...
...
@@ -460,7 +460,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
}
dataSource
.
setName
(
connectionNameText
.
getText
());
dataSource
.
setSavePassword
(
savePasswordCheck
.
getSelection
());
dataSource
.
setDefaultAutoCommit
(
autocommit
.
getSelection
(),
true
);
dataSource
.
setDefaultAutoCommit
(
autocommit
.
getSelection
(),
null
,
true
);
if
(
dataSource
.
isConnected
())
{
int
levelIndex
=
isolationLevel
.
getSelectionIndex
();
if
(
levelIndex
<=
0
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
浏览文件 @
90f30309
...
...
@@ -127,6 +127,9 @@ public class SQLEditor extends SQLEditorBase implements
private
final
List
<
QueryProcessor
>
queryProcessors
=
new
ArrayList
<
QueryProcessor
>();
private
DBSDataSourceContainer
dataSourceContainer
;
private
DBPDataSource
curDataSource
;
private
DBCExecutionContext
executionContext
;
private
boolean
ownContext
=
false
;
private
final
FindReplaceTarget
findReplaceTarget
=
new
FindReplaceTarget
();
private
final
List
<
SQLQuery
>
runningQueries
=
new
ArrayList
<
SQLQuery
>();
...
...
@@ -137,12 +140,7 @@ public class SQLEditor extends SQLEditorBase implements
@Override
public
DBCExecutionContext
getExecutionContext
()
{
final
DBSDataSourceContainer
dataSourceContainer
=
getDataSourceContainer
();
if
(
dataSourceContainer
==
null
)
{
return
null
;
}
DBPDataSource
dataSource
=
dataSourceContainer
.
getDataSource
();
return
dataSource
==
null
?
null
:
dataSource
.
getDefaultContext
(
false
);
return
executionContext
;
}
@Nullable
...
...
@@ -222,15 +220,60 @@ public class SQLEditor extends SQLEditorBase implements
if
(
dataSourceContainer
!=
null
)
{
dataSourceContainer
.
acquire
(
this
);
}
return
true
;
}
private
void
updateExecutionContext
()
{
if
(
dataSourceContainer
==
null
)
{
releaseExecutionContext
();
}
else
{
// Get/open context
final
DBPDataSource
dataSource
=
dataSourceContainer
.
getDataSource
();
if
(
dataSource
==
null
)
{
releaseExecutionContext
();
}
else
if
(
curDataSource
!=
dataSource
)
{
releaseExecutionContext
();
if
(
DBeaverCore
.
getGlobalPreferenceStore
().
getBoolean
(
DBeaverPreferences
.
EDITOR_SEPARATE_CONNECTION
))
{
try
{
DBeaverUI
.
runInProgressDialog
(
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
try
{
executionContext
=
dataSource
.
openIsolatedContext
(
monitor
,
"SQLEditor connection"
);
}
catch
(
DBException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
ownContext
=
true
;
}
});
}
catch
(
InvocationTargetException
e
)
{
UIUtils
.
showErrorDialog
(
getSite
().
getShell
(),
"Open context"
,
"Can't open editor connection"
,
e
);
}
}
else
{
executionContext
=
dataSource
.
getDefaultContext
(
false
);
}
}
curDataSource
=
dataSource
;
}
}
private
void
releaseExecutionContext
()
{
if
(
ownContext
&&
executionContext
!=
null
)
{
executionContext
.
close
();
}
executionContext
=
null
;
ownContext
=
false
;
curDataSource
=
null
;
}
private
void
releaseContainer
()
{
if
(
dataSourceContainer
!=
null
)
{
dataSourceContainer
.
getPreferenceStore
().
removePropertyChangeListener
(
this
);
dataSourceContainer
.
release
(
this
);
dataSourceContainer
=
null
;
}
releaseExecutionContext
();
}
@Override
...
...
@@ -656,9 +699,12 @@ public class SQLEditor extends SQLEditorBase implements
private
void
onDataSourceChange
()
{
updateExecutionContext
();
if
(
sashForm
==
null
||
sashForm
.
isDisposed
())
{
return
;
}
DatabaseEditorUtils
.
setPartBackground
(
this
,
sashForm
);
DBCExecutionContext
executionContext
=
getExecutionContext
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
浏览文件 @
90f30309
...
...
@@ -54,6 +54,8 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc
private
Button
editorFullName
;
private
Combo
doubleClickBehavior
;
private
Button
editorSeparateConnectionCheck
;
public
PrefPageDatabaseGeneral
()
{
super
();
...
...
@@ -106,6 +108,12 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc
doubleClickBehavior
.
add
(
"Expand / Collapse"
,
NavigatorViewBase
.
DoubleClickBehavior
.
EXPAND
.
ordinal
());
}
{
Group
connectionsGroup
=
UIUtils
.
createControlGroup
(
composite
,
"Connections"
,
2
,
SWT
.
NONE
,
0
);
editorSeparateConnectionCheck
=
UIUtils
.
createCheckbox
(
connectionsGroup
,
"Open connection for each editor"
,
false
);
}
performDefaults
();
return
composite
;
...
...
@@ -125,6 +133,8 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc
editorFullName
.
setSelection
(
store
.
getBoolean
(
DBeaverPreferences
.
NAVIGATOR_EDITOR_FULL_NAME
));
doubleClickBehavior
.
select
(
NavigatorViewBase
.
DoubleClickBehavior
.
valueOf
(
store
.
getString
(
DBeaverPreferences
.
NAVIGATOR_CONNECTION_DOUBLE_CLICK
)).
ordinal
());
editorSeparateConnectionCheck
.
setSelection
(
store
.
getBoolean
(
DBeaverPreferences
.
EDITOR_SEPARATE_CONNECTION
));
}
@Override
...
...
@@ -142,6 +152,10 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc
store
.
setValue
(
DBeaverPreferences
.
NAVIGATOR_EDITOR_FULL_NAME
,
editorFullName
.
getSelection
());
store
.
setValue
(
DBeaverPreferences
.
NAVIGATOR_CONNECTION_DOUBLE_CLICK
,
CommonUtils
.
fromOrdinal
(
NavigatorViewBase
.
DoubleClickBehavior
.
class
,
doubleClickBehavior
.
getSelectionIndex
()).
name
());
store
.
setValue
(
DBeaverPreferences
.
EDITOR_SEPARATE_CONNECTION
,
editorSeparateConnectionCheck
.
getSelection
());
RuntimeUtils
.
savePreferenceStore
(
store
);
return
true
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录