Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
1543bdd4
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,发现更多精彩内容 >>
提交
1543bdd4
编写于
12月 26, 2019
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#7472 Default catalog/schema. Model + PG impl
上级
daa700b5
变更
28
隐藏空白更改
内联
并排
Showing
28 changed file
with
184 addition
and
123 deletion
+184
-123
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java
...dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java
+3
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties
....core/src/org/jkiss/dbeaver/core/CoreResources.properties
+4
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_de.properties
...re/src/org/jkiss/dbeaver/core/CoreResources_de.properties
+3
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_fr.properties
...re/src/org/jkiss/dbeaver/core/CoreResources_fr.properties
+3
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_ru.properties
...re/src/org/jkiss/dbeaver/core/CoreResources_ru.properties
+4
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageInitialization.java
...r/ui/dialogs/connection/ConnectionPageInitialization.java
+58
-39
plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/model/DB2DataSource.java
...b2/src/org/jkiss/dbeaver/ext/db2/model/DB2DataSource.java
+1
-1
plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/model/DB2ExecutionContext.java
.../org/jkiss/dbeaver/ext/db2/model/DB2ExecutionContext.java
+1
-1
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/model/ExasolDataSource.java
.../org/jkiss/dbeaver/ext/exasol/model/ExasolDataSource.java
+1
-1
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/model/ExasolExecutionContext.java
...kiss/dbeaver/ext/exasol/model/ExasolExecutionContext.java
+1
-1
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericExecutionContext.java
...ss/dbeaver/ext/generic/model/GenericExecutionContext.java
+1
-1
plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerDataSource.java
...rg/jkiss/dbeaver/ext/mssql/model/SQLServerDataSource.java
+1
-1
plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerExecutionContext.java
...ss/dbeaver/ext/mssql/model/SQLServerExecutionContext.java
+1
-1
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java
...rc/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java
+1
-1
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLExecutionContext.java
.../jkiss/dbeaver/ext/mysql/model/MySQLExecutionContext.java
+1
-1
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java
.../org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java
+1
-1
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleExecutionContext.java
...kiss/dbeaver/ext/oracle/model/OracleExecutionContext.java
+1
-1
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java
...jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java
+5
-2
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreExecutionContext.java
...dbeaver/ext/postgresql/model/PostgreExecutionContext.java
+24
-14
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
...ss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
+6
-6
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPConnectionBootstrap.java
...kiss/dbeaver/model/connection/DBPConnectionBootstrap.java
+33
-24
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/exec/DBCExecutionContextDefaults.java
...jkiss/dbeaver/model/exec/DBCExecutionContextDefaults.java
+1
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/AbstractExecutionContext.java
...rg/jkiss/dbeaver/model/impl/AbstractExecutionContext.java
+5
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/VoidExecutionContextDefaults.java
...kiss/dbeaver/model/impl/VoidExecutionContextDefaults.java
+1
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCExecutionContext.java
...g/jkiss/dbeaver/model/impl/jdbc/JDBCExecutionContext.java
+3
-5
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceSerializerLegacy.java
...rg/jkiss/dbeaver/registry/DataSourceSerializerLegacy.java
+4
-4
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceSerializerModern.java
...rg/jkiss/dbeaver/registry/DataSourceSerializerModern.java
+14
-6
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/RegistryConstants.java
...try/src/org/jkiss/dbeaver/registry/RegistryConstants.java
+2
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java
浏览文件 @
1543bdd4
...
...
@@ -400,10 +400,12 @@ public class CoreMessages extends NLS {
public
static
String
dialog_connection_wizard_final_label_connection_folder
;
public
static
String
dialog_connection_wizard_final_label_connection
;
public
static
String
dialog_connection_wizard_final_label_isolation_level
;
public
static
String
dialog_connection_wizard_final_label_default_database
;
public
static
String
dialog_connection_wizard_final_label_default_database_tooltip
;
public
static
String
dialog_connection_wizard_final_label_default_schema
;
public
static
String
dialog_connection_wizard_final_label_default_schema_tooltip
;
public
static
String
dialog_connection_wizard_final_label_keepalive
;
public
static
String
dialog_connection_wizard_final_label_isolation_level_tooltip
;
public
static
String
dialog_connection_wizard_final_label_default_schema_tooltip
;
public
static
String
dialog_connection_wizard_final_label_keepalive_tooltip
;
public
static
String
dialog_connection_wizard_final_label_bootstrap_query
;
public
static
String
dialog_connection_wizard_configure
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties
浏览文件 @
1543bdd4
...
...
@@ -113,8 +113,10 @@ dialog_connection_wizard_final_label_connection_folder = Connection folder
dialog_connection_wizard_final_label_connection_name
=
Connection name
dialog_connection_wizard_final_label_connection_type
=
Connection type
dialog_connection_wizard_final_label_connection_types_edit
=
Edit connection types
dialog_connection_wizard_final_label_default_schema
=
Default database/schema
dialog_connection_wizard_final_label_default_schema_tooltip
=
Name of schema or catalog which will be set as default.
dialog_connection_wizard_final_label_default_database
=
Default database
dialog_connection_wizard_final_label_default_database_tooltip
=
Name of catalog which will be set as default.
dialog_connection_wizard_final_label_default_schema
=
Default schema
dialog_connection_wizard_final_label_default_schema_tooltip
=
Name of schema which will be set as default.
dialog_connection_wizard_final_label_edit
=
Edit
dialog_connection_wizard_final_label_isolation_level
=
Isolation level
dialog_connection_wizard_final_label_isolation_level_tooltip
=
Default transaction isolation level.
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_de.properties
浏览文件 @
1543bdd4
...
...
@@ -275,9 +275,10 @@ dialog_connection_wizard_final_label_connection_name = Verbindungsname
dialog_connection_wizard_final_label_connection_type
=
Verbindungstyp
dialog_connection_wizard_final_label_default_database
=
Standardkatalog
dialog_connection_wizard_final_label_default_database_tooltip
=
Name des Katalogs, welches als Standard verwendet wird.
dialog_connection_wizard_final_label_default_schema
=
Standardschema
dialog_connection_wizard_final_label_default_schema_tooltip
=
Name des Schemas oder Katalogs, welches als Standard verwendet wird.
dialog_connection_wizard_final_label_default_schema_tooltip
=
Name des Schemas, welches als Standard verwendet wird.
dialog_connection_wizard_final_label_edit
=
Bearbeiten
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_fr.properties
浏览文件 @
1543bdd4
...
...
@@ -189,10 +189,11 @@ dialog_connection_wizard_final_label_bootstrap_tooltip = Requ\u00E8tes SQL \u00E
dialog_connection_wizard_final_label_connection
=
Connexion
dialog_connection_wizard_final_label_connection_name
=
Nom de la connexion
dialog_connection_wizard_final_label_connection_folder
=
R
\u
00E9pertoire de connexion
dialog_connection_wizard_final_label_connection_name
=
Nom de la connexion
dialog_connection_wizard_final_label_connection_type
=
Type de connexion
dialog_connection_wizard_final_label_default_database
=
Catalogue par d
\u
00E9faut
dialog_connection_wizard_final_label_default_database_tooltip
=
Nom du catalogue assign
\u
00E9 par d
\u
00E9faut.
dialog_connection_wizard_final_label_default_schema
=
Sch
\u
00E9ma par d
\u
00E9faut
dialog_connection_wizard_final_label_default_schema_tooltip
=
Nom du sch
\u
00E9ma
ou catalogue
assign
\u
00E9 par d
\u
00E9faut.
dialog_connection_wizard_final_label_default_schema_tooltip
=
Nom du sch
\u
00E9ma assign
\u
00E9 par d
\u
00E9faut.
dialog_connection_wizard_final_label_edit
=
Editer
dialog_connection_wizard_final_label_isolation_level
=
Niveau d'isolation
dialog_connection_wizard_final_label_isolation_level_tooltip
=
Niveau d'isolation par d
\u
00E9faut des transactions.
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_ru.properties
浏览文件 @
1543bdd4
...
...
@@ -237,8 +237,10 @@ dialog_connection_wizard_final_label_connection_folder = \u041F\u0430\u043F\u043
dialog_connection_wizard_final_label_connection_name
=
\u
041D
\u0430\u0437\u0432\u0430\u
043D
\u0438\u0435
\u0441\u
043E
\u0435\u0434\u0438\u
043D
\u0435\u
043D
\u0438\u
044F
dialog_connection_wizard_final_label_connection_type
=
\u0422\u0438\u
043F
\u0441\u
043E
\u0435\u0434\u0438\u
043D
\u0435\u
043D
\u0438\u
044F
dialog_connection_wizard_final_label_connection_types_edit
=
\u0420\u0435\u0434\u0430\u
043A
\u0442\u0438\u0440\u
043E
\u0432\u0430\u0442\u
044C
\u0442\u0438\u
043F
\u
044B
\u0441\u
043E
\u0435\u0434\u0438\u
043D
\u0435\u
043D
\u0438\u0439
dialog_connection_wizard_final_label_default_schema
=
\u0411\u0430\u0437\u0430
/
\u0441\u0445\u0435\u
043C
\u0430
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E
dialog_connection_wizard_final_label_default_schema_tooltip
=
\u
041D
\u0430\u0437\u0432\u0430\u
043D
\u0438\u0435
\u
043A
\u0430\u0442\u0430\u
043B
\u
043E
\u0433\u0430
\u0438\u
043B
\u0438
\u0441\u0445\u0435\u
043C
\u
044B
\u0432\u
044B
\u0431\u0440\u0430\u
043D
\u
043D
\u
043E
\u0439
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E
dialog_connection_wizard_final_label_default_database
=
\u0411\u0430\u0437\u0430
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E
dialog_connection_wizard_final_label_default_database_tooltip
=
\u
041D
\u0430\u0437\u0432\u0430\u
043D
\u0438\u0435
\u
043A
\u0430\u0442\u0430\u
043B
\u
043E
\u0433\u0430
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E
dialog_connection_wizard_final_label_default_schema
=
\u0421\u0445\u0435\u
043C
\u0430
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E
dialog_connection_wizard_final_label_default_schema_tooltip
=
\u
041D
\u0430\u0437\u0432\u0430\u
043D
\u0438\u0435
\u0441\u0445\u0435\u
043C
\u
044B
\u0432\u
044B
\u0431\u0440\u0430\u
043D
\u
043D
\u
043E
\u0439
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E
dialog_connection_wizard_final_label_edit
=
\u0418\u0437\u
043C
\u0435\u
043D
\u0438\u0442\u
044C
dialog_connection_wizard_final_label_isolation_level
=
\u0423\u0440\u
043E
\u0432\u0435\u
043D
\u
044C
\u0438\u0437\u
043E
\u
043B
\u
044F
\u0446\u0438\u0438
dialog_connection_wizard_final_label_isolation_level_tooltip
=
\u0423\u0440\u
043E
\u0432\u0435\u
043D
\u
044C
\u0438\u0437\u
043E
\u
043B
\u
044F
\u0446\u0438\u0438
\u0442\u0440\u0430\u
043D
\u0437\u0430\u
043A
\u0446\u0438
\u
043F
\u
043E
\u0443\u
043C
\u
043E
\u
043B
\u0447\u0430\u
043D
\u0438\u
044E.
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageInitialization.java
浏览文件 @
1543bdd4
...
...
@@ -51,11 +51,15 @@ import org.jkiss.dbeaver.model.DBUtils;
import
org.jkiss.dbeaver.model.connection.DBPConnectionBootstrap
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionType
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContextDefaults
;
import
org.jkiss.dbeaver.model.exec.DBCSession
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DefaultProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSObjectContainer
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSCatalog
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSSchema
;
import
org.jkiss.dbeaver.registry.DataSourceDescriptor
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.ui.*
;
...
...
@@ -78,6 +82,7 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
private
Button
autocommit
;
private
Combo
isolationLevel
;
private
Combo
defaultCatalog
;
private
Combo
defaultSchema
;
private
Spinner
keepAliveInterval
;
...
...
@@ -126,14 +131,15 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
DBPDataSource
dataSource
=
originalDataSource
.
getDataSource
();
loadDatabaseSettings
(
dataSource
);
}
default
Schema
.
setText
(
CommonUtils
.
notEmpty
(
conConfig
.
getBootstrap
().
getDefaultObject
Name
()));
default
Catalog
.
setText
(
CommonUtils
.
notEmpty
(
conConfig
.
getBootstrap
().
getDefaultCatalogName
()));
defaultSchema
.
setText
(
CommonUtils
.
notEmpty
(
conConfig
.
getBootstrap
().
getDefaultSchema
Name
()));
keepAliveInterval
.
setSelection
(
conConfig
.
getKeepAliveInterval
());
activated
=
true
;
}
}
else
{
// Default settings
isolationLevel
.
setEnabled
(
false
);
defaultCatalog
.
setText
(
""
);
defaultSchema
.
setText
(
""
);
}
}
...
...
@@ -150,7 +156,7 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
}
}
private
void
loadDatabaseSettings
(
DBRProgressMonitor
monitor
,
DBPDataSource
dataSource
)
throws
InvocationTargetException
,
InterruptedException
{
private
void
loadDatabaseSettings
(
DBRProgressMonitor
monitor
,
DBPDataSource
dataSource
)
{
DBPDataSourceContainer
dataSourceContainer
=
dataSource
.
getContainer
();
Collection
<
DBPTransactionIsolation
>
txnLevels
=
CommonUtils
.
safeCollection
(
dataSource
.
getInfo
().
getSupportedTransactionsIsolation
());
Integer
levelCode
=
dataSourceContainer
.
getDefaultTransactionsIsolation
();
...
...
@@ -187,39 +193,55 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
});
if
(
dataSource
instanceof
DBSObjectContainer
)
{
DBSObjectContainer
schemaContainer
=
DBUtils
.
getChangeableObjectContainer
(
dataSource
,
(
DBSObjectContainer
)
dataSource
);
if
(
schemaContainer
!=
null
)
{
try
{
final
List
<
String
>
schemaNames
=
new
ArrayList
<>();
Collection
<?
extends
DBSObject
>
children
=
schemaContainer
.
getChildren
(
monitor
);
if
(
children
!=
null
)
{
for
(
DBSObject
child
:
children
)
{
if
(
child
instanceof
DBSObjectContainer
)
{
schemaNames
.
add
(
child
.
getName
());
}
DBCExecutionContext
executionContext
=
DBUtils
.
getDefaultContext
(
dataSource
,
true
);
DBCExecutionContextDefaults
contextDefaults
=
executionContext
.
getContextDefaults
();
DBSObjectContainer
catalogContainer
=
DBUtils
.
getChangeableObjectContainer
(
contextDefaults
,
(
DBSObjectContainer
)
dataSource
,
DBSCatalog
.
class
);
if
(
catalogContainer
!=
null
)
{
loadSelectableObject
(
monitor
,
catalogContainer
,
defaultCatalog
,
contextDefaults
,
true
);
}
DBSObjectContainer
schemaContainer
=
DBUtils
.
getChangeableObjectContainer
(
contextDefaults
,
(
DBSObjectContainer
)
dataSource
,
DBSSchema
.
class
);
loadSelectableObject
(
monitor
,
schemaContainer
,
defaultSchema
,
contextDefaults
,
false
);
}
txnOptionsLoaded
=
true
;
}
private
void
loadSelectableObject
(
DBRProgressMonitor
monitor
,
DBSObjectContainer
objectContainer
,
Combo
objectCombo
,
DBCExecutionContextDefaults
contextDefaults
,
boolean
isCatalogs
)
{
if
(
objectContainer
!=
null
)
{
try
{
final
List
<
String
>
objectNames
=
new
ArrayList
<>();
Collection
<?
extends
DBSObject
>
children
=
objectContainer
.
getChildren
(
monitor
);
if
(
children
!=
null
)
{
for
(
DBSObject
child
:
children
)
{
if
(
child
instanceof
DBSObjectContainer
)
{
objectNames
.
add
(
child
.
getName
());
}
}
if
(!
schemaNames
.
isEmpty
())
{
UIUtils
.
syncExec
(()
->
{
if
(!
defaultSchema
.
isDisposed
())
{
String
oldText
=
defaultSchema
.
getText
();
defaultSchema
.
removeAll
();
for
(
String
name
:
schemaNames
)
{
defaultSchema
.
add
(
name
);
}
if
(!
CommonUtils
.
isEmpty
(
oldText
))
{
defaultSchema
.
setText
(
oldText
);
}
if
(!
objectNames
.
isEmpty
())
{
UIUtils
.
syncExec
(()
->
{
if
(!
objectCombo
.
isDisposed
())
{
String
oldText
=
objectCombo
.
getText
();
objectCombo
.
removeAll
();
for
(
String
name
:
objectNames
)
{
objectCombo
.
add
(
name
);
}
if
(!
CommonUtils
.
isEmpty
(
oldText
))
{
objectCombo
.
setText
(
oldText
);
}
if
(
contextDefaults
!=
null
)
{
DBSObject
defaultObject
=
isCatalogs
?
contextDefaults
.
getDefaultCatalog
()
:
contextDefaults
.
getDefaultSchema
();
if
(
defaultObject
!=
null
)
{
objectCombo
.
setText
(
defaultObject
.
getName
());
}
}
});
}
}
catch
(
DBException
e
)
{
log
.
warn
(
"Can't read schema list"
,
e
);
}
});
}
}
catch
(
DBException
e
)
{
log
.
warn
(
"Can't read schema list"
,
e
);
}
}
txnOptionsLoaded
=
true
;
}
@Override
...
...
@@ -248,6 +270,9 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
isolationLevel
=
UIUtils
.
createLabelCombo
(
txnGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_isolation_level
,
CoreMessages
.
dialog_connection_wizard_final_label_isolation_level_tooltip
,
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
defaultCatalog
=
UIUtils
.
createLabelCombo
(
txnGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_default_database
,
CoreMessages
.
dialog_connection_wizard_final_label_default_database_tooltip
,
SWT
.
DROP_DOWN
);
((
GridData
)
defaultCatalog
.
getLayoutData
()).
widthHint
=
UIUtils
.
getFontHeight
(
defaultCatalog
)
*
20
;
defaultSchema
=
UIUtils
.
createLabelCombo
(
txnGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_default_schema
,
CoreMessages
.
dialog_connection_wizard_final_label_default_schema_tooltip
,
SWT
.
DROP_DOWN
);
((
GridData
)
defaultSchema
.
getLayoutData
()).
widthHint
=
UIUtils
.
getFontHeight
(
defaultSchema
)
*
20
;
...
...
@@ -314,11 +339,11 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
}
catch
(
DBException
e
)
{
log
.
error
(
e
);
}
dataSource
.
getConnectionConfiguration
().
getBootstrap
().
setDefaultObjectName
(
defaultSchema
.
getText
());
final
DBPConnectionConfiguration
confConfig
=
dataSource
.
getConnectionConfiguration
();
DBPConnectionBootstrap
bootstrap
=
confConfig
.
getBootstrap
();
bootstrap
.
setDefaultCatalogName
(
defaultCatalog
.
getText
());
bootstrap
.
setDefaultSchemaName
(
defaultSchema
.
getText
());
bootstrap
.
setIgnoreErrors
(
ignoreBootstrapErrors
);
bootstrap
.
setInitQueries
(
bootstrapQueries
);
...
...
@@ -344,13 +369,7 @@ class ConnectionPageInitialization extends ConnectionWizardPage implements IData
@Override
public
void
testConnection
(
DBCSession
session
)
{
// We load settings to fill txn isolation levels and schema names (#6794)
try
{
loadDatabaseSettings
(
session
.
getProgressMonitor
(),
session
.
getDataSource
());
}
catch
(
InvocationTargetException
e
)
{
DBWorkbench
.
getPlatformUI
().
showError
(
"Database info reading"
,
"Error reading database settings"
,
e
.
getTargetException
());
}
catch
(
InterruptedException
e
)
{
// ignore
}
loadDatabaseSettings
(
session
.
getProgressMonitor
(),
session
.
getDataSource
());
}
}
plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/model/DB2DataSource.java
浏览文件 @
1543bdd4
...
...
@@ -196,7 +196,7 @@ public class DB2DataSource extends JDBCDataSource implements DBCQueryPlanner, IA
if
(
initFrom
!=
null
)
{
((
DB2ExecutionContext
)
context
).
setCurrentSchema
(
monitor
,
((
DB2ExecutionContext
)
initFrom
).
getDefaultSchema
());
}
else
{
((
DB2ExecutionContext
)
context
).
refreshDefaults
(
monitor
);
((
DB2ExecutionContext
)
context
).
refreshDefaults
(
monitor
,
true
);
}
}
...
...
plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/model/DB2ExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -105,7 +105,7 @@ public class DB2ExecutionContext extends JDBCExecutionContext implements DBCExec
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
// Check default active schema
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Query active schema"
))
{
// Get active schema
...
...
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/model/ExasolDataSource.java
浏览文件 @
1543bdd4
...
...
@@ -360,7 +360,7 @@ public class ExasolDataSource extends JDBCDataSource implements DBCQueryPlanner,
if
(
initFrom
!=
null
)
{
((
ExasolExecutionContext
)
context
).
setCurrentSchema
(
monitor
,
((
ExasolExecutionContext
)
initFrom
).
getDefaultSchema
());
}
else
{
((
ExasolExecutionContext
)
context
).
refreshDefaults
(
monitor
);
((
ExasolExecutionContext
)
context
).
refreshDefaults
(
monitor
,
true
);
}
}
...
...
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/model/ExasolExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -104,7 +104,7 @@ public class ExasolExecutionContext extends JDBCExecutionContext implements DBCE
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
// Check default active schema
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Query active schema"
))
{
// Get active schema
...
...
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -284,7 +284,7 @@ public class GenericExecutionContext extends JDBCExecutionContext implements DBC
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
String
oldEntityName
=
selectedEntityName
;
DBSObject
oldDefaultObject
=
getDefaultObject
();
...
...
plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerDataSource.java
浏览文件 @
1543bdd4
...
...
@@ -140,7 +140,7 @@ public class SQLServerDataSource extends JDBCDataSource implements DBSInstanceCo
((
SQLServerExecutionContext
)
context
).
setCurrentDatabase
(
monitor
,
defaultObject
);
}
}
else
{
((
SQLServerExecutionContext
)
context
).
refreshDefaults
(
monitor
);
((
SQLServerExecutionContext
)
context
).
refreshDefaults
(
monitor
,
true
);
}
}
...
...
plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -111,7 +111,7 @@ public class SQLServerExecutionContext extends JDBCExecutionContext implements D
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
// Check default active schema
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Query active database"
))
{
activeDatabaseName
=
SQLServerUtils
.
getCurrentDatabase
(
session
);
...
...
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java
浏览文件 @
1543bdd4
...
...
@@ -208,7 +208,7 @@ public class MySQLDataSource extends JDBCDataSource {
((
MySQLExecutionContext
)
context
).
setCurrentDatabase
(
monitor
,
object
);
}
}
else
{
((
MySQLExecutionContext
)
context
).
refreshDefaults
(
monitor
);
((
MySQLExecutionContext
)
context
).
refreshDefaults
(
monitor
,
true
);
}
}
...
...
plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -107,7 +107,7 @@ public class MySQLExecutionContext extends JDBCExecutionContext implements DBCEx
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
// Check default active schema
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Query active database"
))
{
activeDatabaseName
=
MySQLUtils
.
determineCurrentDatabase
(
session
);
...
...
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java
浏览文件 @
1543bdd4
...
...
@@ -215,7 +215,7 @@ public class OracleDataSource extends JDBCDataSource implements IAdaptable {
if
(
initFrom
!=
null
)
{
((
OracleExecutionContext
)
context
).
setCurrentSchema
(
monitor
,
((
OracleExecutionContext
)
initFrom
).
getDefaultSchema
());
}
else
{
((
OracleExecutionContext
)
context
).
refreshDefaults
(
monitor
);
((
OracleExecutionContext
)
context
).
refreshDefaults
(
monitor
,
true
);
}
{
...
...
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -100,7 +100,7 @@ public class OracleExecutionContext extends JDBCExecutionContext implements DBCE
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
// Check default active schema
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Query active schema"
))
{
// Get active schema
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java
浏览文件 @
1543bdd4
...
...
@@ -89,7 +89,10 @@ public class PostgreDataSource extends JDBCDataSource implements DBSInstanceCont
@Override
protected
void
initializeRemoteInstance
(
@NotNull
DBRProgressMonitor
monitor
)
throws
DBException
{
activeDatabaseName
=
getContainer
().
getConnectionConfiguration
().
getDatabaseName
();
activeDatabaseName
=
getContainer
().
getConnectionConfiguration
().
getBootstrap
().
getDefaultCatalogName
();
if
(
CommonUtils
.
isEmpty
(
activeDatabaseName
))
{
activeDatabaseName
=
getContainer
().
getConnectionConfiguration
().
getDatabaseName
();
}
if
(
CommonUtils
.
isEmpty
(
activeDatabaseName
))
{
activeDatabaseName
=
PostgreConstants
.
DEFAULT_DATABASE
;
}
...
...
@@ -202,7 +205,7 @@ public class PostgreDataSource extends JDBCDataSource implements DBSInstanceCont
((
PostgreExecutionContext
)
context
).
setDefaultSchema
(
monitor
,
activeSchema
);
}
}
else
{
((
PostgreExecutionContext
)
context
).
refreshDefaults
(
monitor
);
((
PostgreExecutionContext
)
context
).
refreshDefaults
(
monitor
,
true
);
}
}
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -22,6 +22,7 @@ import org.jkiss.dbeaver.DBException;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.ext.postgresql.PostgreConstants
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionBootstrap
;
import
org.jkiss.dbeaver.model.exec.DBCException
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContextDefaults
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionPurpose
;
...
...
@@ -131,9 +132,16 @@ public class PostgreExecutionContext extends JDBCExecutionContext implements DBC
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
// Check default active schema
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Get context active schema"
))
{
try
(
JDBCSession
session
=
openSession
(
monitor
,
DBCExecutionPurpose
.
META
,
"Read context defaults"
))
{
if
(
useBootstrapSettings
)
{
DBPConnectionBootstrap
bootstrap
=
getBootstrapSettings
();
if
(!
CommonUtils
.
isEmpty
(
bootstrap
.
getDefaultSchemaName
()))
{
setSearchPath
(
monitor
,
bootstrap
.
getDefaultSchemaName
());
}
}
try
(
JDBCPreparedStatement
stat
=
session
.
prepareStatement
(
"SELECT current_schema(),session_user"
))
{
try
(
JDBCResultSet
rs
=
stat
.
executeQuery
())
{
if
(
rs
.
nextRow
())
{
...
...
@@ -178,21 +186,23 @@ public class PostgreExecutionContext extends JDBCExecutionContext implements DBC
private
void
setSearchPath
(
DBRProgressMonitor
monitor
,
PostgreSchema
schema
)
throws
DBCException
{
// Construct search path from current search path but put default schema first
setSearchPath
(
monitor
,
schema
.
getName
());
}
private
void
setSearchPath
(
DBRProgressMonitor
monitor
,
String
defSchemaName
)
throws
DBCException
{
List
<
String
>
newSearchPath
=
new
ArrayList
<>(
getDefaultSearchPath
());
{
String
defSchemaName
=
schema
.
getName
();
int
schemaIndex
=
newSearchPath
.
indexOf
(
defSchemaName
);
if
(
schemaIndex
==
0
)
{
// Already default schema
}
else
{
if
(
schemaIndex
>
0
)
{
// Remove from previous position
newSearchPath
.
remove
(
schemaIndex
);
}
// Add it first
newSearchPath
.
add
(
0
,
defSchemaName
);
int
schemaIndex
=
newSearchPath
.
indexOf
(
defSchemaName
);
if
(
schemaIndex
==
0
)
{
// Already default schema
}
else
{
if
(
schemaIndex
>
0
)
{
// Remove from previous position
newSearchPath
.
remove
(
schemaIndex
);
}
// Add it first
newSearchPath
.
add
(
0
,
defSchemaName
);
}
StringBuilder
spString
=
new
StringBuilder
();
for
(
String
sp
:
newSearchPath
)
{
if
(
spString
.
length
()
>
0
)
spString
.
append
(
","
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
浏览文件 @
1543bdd4
...
...
@@ -1716,7 +1716,7 @@ public final class DBUtils {
try
{
DBSCatalog
defaultCatalog
=
contextDefaults
.
getDefaultCatalog
();
DBSSchema
defaultSchema
=
contextDefaults
.
getDefaultSchema
();
if
(
contextDefaults
.
refreshDefaults
(
monitor
))
{
if
(
contextDefaults
.
refreshDefaults
(
monitor
,
false
))
{
fireObjectSelectionChange
(
defaultCatalog
,
contextDefaults
.
getDefaultCatalog
());
fireObjectSelectionChange
(
defaultSchema
,
contextDefaults
.
getDefaultSchema
());
}
...
...
@@ -1736,19 +1736,19 @@ public final class DBUtils {
}
}
public
static
DBSObjectContainer
getChangeableObjectContainer
(
DBPDataSource
dataSource
,
DBSObjectContainer
root
)
{
DBCExecutionContext
executionContext
=
DBUtils
.
getDefaultContext
(
dataSource
,
true
);
DBCExecutionContextDefaults
contextDefaults
=
executionContext
.
getContextDefaults
();
public
static
DBSObjectContainer
getChangeableObjectContainer
(
DBCExecutionContextDefaults
contextDefaults
,
DBSObjectContainer
root
,
Class
<?
extends
DBSObject
>
childType
)
{
if
(
contextDefaults
==
null
)
{
return
null
;
}
if
(
contextDefaults
.
supportsCatalogChange
())
{
if
(
c
hildType
==
DBSCatalog
.
class
&&
c
ontextDefaults
.
supportsCatalogChange
())
{
return
root
;
}
if
(
contextDefaults
.
supportsSchemaChange
())
{
if
(
c
hildType
==
DBSSchema
.
class
&&
c
ontextDefaults
.
supportsSchemaChange
())
{
DBSCatalog
defaultCatalog
=
contextDefaults
.
getDefaultCatalog
();
if
(
defaultCatalog
!=
null
)
{
return
defaultCatalog
;
}
else
{
return
root
;
}
}
return
null
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPConnectionBootstrap.java
浏览文件 @
1543bdd4
...
...
@@ -18,29 +18,30 @@ package org.jkiss.dbeaver.model.connection;
import
org.jkiss.utils.CommonUtils
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
/**
* Connection bootstrap info.
* Bootstrap properties are applied to each opened connection after data-source initialization.
*/
public
class
DBPConnectionBootstrap
{
private
String
default
Object
Name
;
public
class
DBPConnectionBootstrap
{
private
String
defaultCatalogName
;
private
String
default
Schema
Name
;
private
Boolean
defaultAutoCommit
;
private
Integer
defaultTransactionIsolation
;
private
final
List
<
String
>
initQueries
;
private
boolean
ignoreErrors
;
public
DBPConnectionBootstrap
()
{
public
DBPConnectionBootstrap
()
{
this
.
initQueries
=
new
ArrayList
<>();
this
.
ignoreErrors
=
false
;
}
public
DBPConnectionBootstrap
(
DBPConnectionBootstrap
info
)
{
this
.
default
ObjectName
=
info
.
defaultObject
Name
;
public
DBPConnectionBootstrap
(
DBPConnectionBootstrap
info
)
{
this
.
defaultCatalogName
=
info
.
defaultCatalogName
;
this
.
default
SchemaName
=
info
.
defaultSchema
Name
;
this
.
defaultAutoCommit
=
info
.
defaultAutoCommit
;
this
.
defaultTransactionIsolation
=
info
.
defaultTransactionIsolation
;
this
.
initQueries
=
new
ArrayList
<>(
info
.
initQueries
);
...
...
@@ -56,12 +57,20 @@ public class DBPConnectionBootstrap
initQueries
.
addAll
(
queries
);
}
public
String
getDefault
Object
Name
()
{
return
default
Object
Name
;
public
String
getDefault
Catalog
Name
()
{
return
default
Catalog
Name
;
}
public
void
setDefaultObjectName
(
String
defaultObjectName
)
{
this
.
defaultObjectName
=
defaultObjectName
;
public
void
setDefaultCatalogName
(
String
defaultCatalogName
)
{
this
.
defaultCatalogName
=
defaultCatalogName
;
}
public
String
getDefaultSchemaName
()
{
return
defaultSchemaName
;
}
public
void
setDefaultSchemaName
(
String
defaultSchemaName
)
{
this
.
defaultSchemaName
=
defaultSchemaName
;
}
public
Boolean
getDefaultAutoCommit
()
{
...
...
@@ -90,11 +99,11 @@ public class DBPConnectionBootstrap
public
boolean
hasData
()
{
return
defaultAutoCommit
!=
null
||
defaultTransactionIsolation
!=
null
||
!
CommonUtils
.
isEmpty
(
defaultObject
Name
)
||
ignoreErrors
||
!
CommonUtils
.
isEmpty
(
initQueries
);
defaultAutoCommit
!=
null
||
defaultTransactionIsolation
!=
null
||
!
CommonUtils
.
isEmpty
(
defaultCatalog
Name
)
||
ignoreErrors
||
!
CommonUtils
.
isEmpty
(
initQueries
);
}
@Override
...
...
@@ -102,12 +111,12 @@ public class DBPConnectionBootstrap
if
(!(
obj
instanceof
DBPConnectionBootstrap
))
{
return
false
;
}
DBPConnectionBootstrap
source
=
(
DBPConnectionBootstrap
)
obj
;
DBPConnectionBootstrap
source
=
(
DBPConnectionBootstrap
)
obj
;
return
CommonUtils
.
equalObjects
(
this
.
defaultObjectName
,
source
.
defaultObject
Name
)
&&
CommonUtils
.
equalObjects
(
this
.
defaultAutoCommit
,
source
.
defaultAutoCommit
)
&&
CommonUtils
.
equalObjects
(
this
.
defaultTransactionIsolation
,
source
.
defaultTransactionIsolation
)
&&
CommonUtils
.
equalObjects
(
this
.
initQueries
,
source
.
initQueries
)
&&
this
.
ignoreErrors
==
source
.
ignoreErrors
;
CommonUtils
.
equalObjects
(
this
.
defaultCatalogName
,
source
.
defaultCatalog
Name
)
&&
CommonUtils
.
equalObjects
(
this
.
defaultAutoCommit
,
source
.
defaultAutoCommit
)
&&
CommonUtils
.
equalObjects
(
this
.
defaultTransactionIsolation
,
source
.
defaultTransactionIsolation
)
&&
CommonUtils
.
equalObjects
(
this
.
initQueries
,
source
.
initQueries
)
&&
this
.
ignoreErrors
==
source
.
ignoreErrors
;
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/exec/DBCExecutionContextDefaults.java
浏览文件 @
1543bdd4
...
...
@@ -40,6 +40,6 @@ public interface DBCExecutionContextDefaults<CATALOG extends DBSCatalog, SCHEMA
void
setDefaultSchema
(
DBRProgressMonitor
monitor
,
SCHEMA
schema
)
throws
DBCException
;
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
;
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
;
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/AbstractExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -78,6 +78,10 @@ public abstract class AbstractExecutionContext<DATASOURCE extends DBPDataSource>
return
null
;
}
@NotNull
protected
DBPConnectionBootstrap
getBootstrapSettings
()
{
return
getDataSource
().
getContainer
().
getActualConnectionConfiguration
().
getBootstrap
();
}
/**
* Context boot procedure.
...
...
@@ -90,7 +94,7 @@ public abstract class AbstractExecutionContext<DATASOURCE extends DBPDataSource>
QMUtils
.
getDefaultHandler
().
handleContextOpen
(
this
,
!
autoCommit
);
// Execute bootstrap queries
DBPConnectionBootstrap
bootstrap
=
dataSource
.
getContainer
().
getConnectionConfiguration
().
getBootstrap
();
DBPConnectionBootstrap
bootstrap
=
getBootstrapSettings
();
List
<
String
>
initQueries
=
bootstrap
.
getInitQueries
();
if
(!
CommonUtils
.
isEmpty
(
initQueries
))
{
monitor
.
subTask
(
"Run bootstrap queries"
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/VoidExecutionContextDefaults.java
浏览文件 @
1543bdd4
...
...
@@ -60,7 +60,7 @@ public class VoidExecutionContextDefaults implements DBCExecutionContextDefaults
}
@Override
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
)
throws
DBException
{
public
boolean
refreshDefaults
(
DBRProgressMonitor
monitor
,
boolean
useBootstrapSettings
)
throws
DBException
{
throw
new
DBCFeatureNotSupportedException
();
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCExecutionContext.java
浏览文件 @
1543bdd4
...
...
@@ -130,16 +130,14 @@ public class JDBCExecutionContext extends AbstractExecutionContext<JDBCDataSourc
try
{
this
.
initContextBootstrap
(
monitor
,
autoCommit
);
}
catch
(
DBCException
e
)
{
log
.
error
(
"Error while running context bootstrap"
,
e
);
log
.
warn
(
"Error while running context bootstrap"
,
e
);
}
try
{
//
Copy
context state
//
Init (or copy)
context state
this
.
dataSource
.
initializeContextState
(
monitor
,
this
,
initFrom
);
}
catch
(
DBCException
e
)
{
log
.
error
(
"Error while initializing context state"
,
e
);
}
catch
(
DBException
e
)
{
e
.
printStackTrace
(
);
log
.
warn
(
"Error while initializing context state"
,
e
);
}
try
{
...
...
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceSerializerLegacy.java
浏览文件 @
1543bdd4
...
...
@@ -290,8 +290,8 @@ class DataSourceSerializerLegacy implements DataSourceSerializer
if
(
bootstrap
.
getDefaultTransactionIsolation
()
!=
null
)
{
xml
.
addAttribute
(
RegistryConstants
.
ATTR_TXN_ISOLATION
,
bootstrap
.
getDefaultTransactionIsolation
());
}
if
(!
CommonUtils
.
isEmpty
(
bootstrap
.
getDefault
Object
Name
()))
{
xml
.
addAttribute
(
RegistryConstants
.
ATTR_DEFAULT_OBJECT
,
bootstrap
.
getDefault
Object
Name
());
if
(!
CommonUtils
.
isEmpty
(
bootstrap
.
getDefault
Catalog
Name
()))
{
xml
.
addAttribute
(
RegistryConstants
.
ATTR_DEFAULT_OBJECT
,
bootstrap
.
getDefault
Catalog
Name
());
}
if
(
bootstrap
.
isIgnoreErrors
())
{
xml
.
addAttribute
(
RegistryConstants
.
ATTR_IGNORE_ERRORS
,
true
);
...
...
@@ -575,7 +575,7 @@ class DataSourceSerializerLegacy implements DataSourceSerializer
config
.
getBootstrap
().
setDefaultTransactionIsolation
(
CommonUtils
.
toInt
(
atts
.
getValue
(
RegistryConstants
.
ATTR_TXN_ISOLATION
)));
}
if
(!
CommonUtils
.
isEmpty
(
atts
.
getValue
(
RegistryConstants
.
ATTR_DEFAULT_OBJECT
)))
{
config
.
getBootstrap
().
setDefault
Object
Name
(
atts
.
getValue
(
RegistryConstants
.
ATTR_DEFAULT_OBJECT
));
config
.
getBootstrap
().
setDefault
Catalog
Name
(
atts
.
getValue
(
RegistryConstants
.
ATTR_DEFAULT_OBJECT
));
}
if
(
atts
.
getValue
(
RegistryConstants
.
ATTR_IGNORE_ERRORS
)
!=
null
)
{
config
.
getBootstrap
().
setIgnoreErrors
(
CommonUtils
.
toBoolean
(
atts
.
getValue
(
RegistryConstants
.
ATTR_IGNORE_ERRORS
)));
...
...
@@ -642,7 +642,7 @@ class DataSourceSerializerLegacy implements DataSourceSerializer
break
;
case
DataSourceRegistry
.
DEFAULT_ACTIVE_OBJECT
:
if
(!
CommonUtils
.
isEmpty
(
propValue
))
{
curDataSource
.
getConnectionConfiguration
().
getBootstrap
().
setDefault
Object
Name
(
propValue
);
curDataSource
.
getConnectionConfiguration
().
getBootstrap
().
setDefault
Catalog
Name
(
propValue
);
}
break
;
default
:
...
...
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceSerializerModern.java
浏览文件 @
1543bdd4
...
...
@@ -517,17 +517,24 @@ class DataSourceSerializerModern implements DataSourceSerializer
// Bootstrap
Map
<
String
,
Object
>
bootstrapCfg
=
JSONUtils
.
getObject
(
cfgObject
,
RegistryConstants
.
TAG_BOOTSTRAP
);
DBPConnectionBootstrap
bootstrap
=
config
.
getBootstrap
();
if
(
bootstrapCfg
.
containsKey
(
RegistryConstants
.
ATTR_AUTOCOMMIT
))
{
config
.
getBootstrap
()
.
setDefaultAutoCommit
(
JSONUtils
.
getBoolean
(
bootstrapCfg
,
RegistryConstants
.
ATTR_AUTOCOMMIT
));
bootstrap
.
setDefaultAutoCommit
(
JSONUtils
.
getBoolean
(
bootstrapCfg
,
RegistryConstants
.
ATTR_AUTOCOMMIT
));
}
if
(
bootstrapCfg
.
containsKey
(
RegistryConstants
.
ATTR_TXN_ISOLATION
))
{
config
.
getBootstrap
()
.
setDefaultTransactionIsolation
(
JSONUtils
.
getInteger
(
bootstrapCfg
,
RegistryConstants
.
ATTR_TXN_ISOLATION
));
bootstrap
.
setDefaultTransactionIsolation
(
JSONUtils
.
getInteger
(
bootstrapCfg
,
RegistryConstants
.
ATTR_TXN_ISOLATION
));
}
config
.
getBootstrap
().
setDefaultObjectName
(
JSONUtils
.
getString
(
bootstrapCfg
,
RegistryConstants
.
ATTR_DEFAULT_OBJECT
));
bootstrap
.
setDefaultCatalogName
(
JSONUtils
.
getString
(
bootstrapCfg
,
RegistryConstants
.
ATTR_DEFAULT_CATALOG
));
bootstrap
.
setDefaultSchemaName
(
JSONUtils
.
getString
(
bootstrapCfg
,
RegistryConstants
.
ATTR_DEFAULT_SCHEMA
));
String
defObjectName
=
JSONUtils
.
getString
(
bootstrapCfg
,
RegistryConstants
.
ATTR_DEFAULT_OBJECT
);
if
(!
CommonUtils
.
isEmpty
(
defObjectName
)
&&
CommonUtils
.
isEmpty
(
bootstrap
.
getDefaultSchemaName
()))
{
bootstrap
.
setDefaultSchemaName
(
JSONUtils
.
getString
(
bootstrapCfg
,
defObjectName
));
}
if
(
bootstrapCfg
.
containsKey
(
RegistryConstants
.
ATTR_IGNORE_ERRORS
))
{
config
.
getBootstrap
()
.
setIgnoreErrors
(
JSONUtils
.
getBoolean
(
bootstrapCfg
,
RegistryConstants
.
ATTR_IGNORE_ERRORS
));
bootstrap
.
setIgnoreErrors
(
JSONUtils
.
getBoolean
(
bootstrapCfg
,
RegistryConstants
.
ATTR_IGNORE_ERRORS
));
}
config
.
getBootstrap
()
.
setInitQueries
(
JSONUtils
.
deserializeStringList
(
bootstrapCfg
,
RegistryConstants
.
TAG_QUERY
));
bootstrap
.
setInitQueries
(
JSONUtils
.
deserializeStringList
(
bootstrapCfg
,
RegistryConstants
.
TAG_QUERY
));
}
// Permissions
...
...
@@ -775,7 +782,8 @@ class DataSourceSerializerModern implements DataSourceSerializer
if
(
bootstrap
.
getDefaultTransactionIsolation
()
!=
null
)
{
JSONUtils
.
field
(
json
,
RegistryConstants
.
ATTR_TXN_ISOLATION
,
bootstrap
.
getDefaultTransactionIsolation
());
}
JSONUtils
.
fieldNE
(
json
,
RegistryConstants
.
ATTR_DEFAULT_OBJECT
,
bootstrap
.
getDefaultObjectName
());
JSONUtils
.
fieldNE
(
json
,
RegistryConstants
.
ATTR_DEFAULT_CATALOG
,
bootstrap
.
getDefaultCatalogName
());
JSONUtils
.
fieldNE
(
json
,
RegistryConstants
.
ATTR_DEFAULT_SCHEMA
,
bootstrap
.
getDefaultSchemaName
());
if
(
bootstrap
.
isIgnoreErrors
())
{
JSONUtils
.
field
(
json
,
RegistryConstants
.
ATTR_IGNORE_ERRORS
,
true
);
}
...
...
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/RegistryConstants.java
浏览文件 @
1543bdd4
...
...
@@ -96,6 +96,8 @@ public class RegistryConstants {
public
static
final
String
ATTR_AUTOCOMMIT
=
"autocommit"
;
//$NON-NLS-1$
public
static
final
String
ATTR_TXN_ISOLATION
=
"txnIsolation"
;
//$NON-NLS-1$
public
static
final
String
ATTR_DEFAULT_OBJECT
=
"defaultObject"
;
//$NON-NLS-1$
public
static
final
String
ATTR_DEFAULT_CATALOG
=
"defaultCatalog"
;
//$NON-NLS-1$
public
static
final
String
ATTR_DEFAULT_SCHEMA
=
"defaultSchema"
;
//$NON-NLS-1$
public
static
final
String
ATTR_CONFIRM_EXECUTE
=
"confirmExecute"
;
//$NON-NLS-1$
public
static
final
String
ATTR_CONFIRM_DATA_CHANGE
=
"confirmDataChange"
;
//$NON-NLS-1$
public
static
final
String
ATTR_PARENT
=
"parent"
;
//$NON-NLS-1$
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录