Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
3d7101c7
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,发现更多精彩内容 >>
提交
3d7101c7
编写于
6月 28, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Stored procedure execution.
JDBC model refactoring Former-commit-id:
6df85dd0
上级
cb114032
变更
26
隐藏空白更改
内联
并排
Showing
26 changed file
with
122 addition
and
87 deletion
+122
-87
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/DBUtils.java
...iss.dbeaver.core/src/org/jkiss/dbeaver/model/DBUtils.java
+50
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/DBObjectNameCaseTransformer.java
...jkiss/dbeaver/model/impl/DBObjectNameCaseTransformer.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCUtils.java
...core/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCUtils.java
+10
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/exec/JDBCCallableStatementImpl.java
...eaver/model/impl/jdbc/exec/JDBCCallableStatementImpl.java
+11
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/exec/JDBCConnectionImpl.java
...kiss/dbeaver/model/impl/jdbc/exec/JDBCConnectionImpl.java
+2
-48
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/local/LocalResultSetColumn.java
.../jkiss/dbeaver/model/impl/local/LocalResultSetColumn.java
+9
-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
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
...e/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
+13
-6
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2ForeignKeyManager.java
...g/jkiss/dbeaver/ext/db2/manager/DB2ForeignKeyManager.java
+1
-1
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2IndexManager.java
...rc/org/jkiss/dbeaver/ext/db2/manager/DB2IndexManager.java
+1
-1
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2TableColumnManager.java
.../jkiss/dbeaver/ext/db2/manager/DB2TableColumnManager.java
+1
-1
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2UniqueKeyManager.java
...rg/jkiss/dbeaver/ext/db2/manager/DB2UniqueKeyManager.java
+1
-1
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericForeignKeyManager.java
...ss/dbeaver/ext/generic/edit/GenericForeignKeyManager.java
+3
-3
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericIndexManager.java
...g/jkiss/dbeaver/ext/generic/edit/GenericIndexManager.java
+1
-1
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericPrimaryKeyManager.java
...ss/dbeaver/ext/generic/edit/GenericPrimaryKeyManager.java
+1
-1
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericTableColumnManager.java
...s/dbeaver/ext/generic/edit/GenericTableColumnManager.java
+1
-1
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLConstraintManager.java
.../jkiss/dbeaver/ext/mysql/edit/MySQLConstraintManager.java
+1
-1
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLForeignKeyManager.java
.../jkiss/dbeaver/ext/mysql/edit/MySQLForeignKeyManager.java
+3
-3
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLIndexManager.java
...c/org/jkiss/dbeaver/ext/mysql/edit/MySQLIndexManager.java
+1
-1
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLTableColumnManager.java
...jkiss/dbeaver/ext/mysql/edit/MySQLTableColumnManager.java
+1
-1
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleConstraintManager.java
...kiss/dbeaver/ext/oracle/edit/OracleConstraintManager.java
+1
-1
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleForeignKeyManager.java
...kiss/dbeaver/ext/oracle/edit/OracleForeignKeyManager.java
+3
-3
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleIndexManager.java
...org/jkiss/dbeaver/ext/oracle/edit/OracleIndexManager.java
+1
-1
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleSchemaManager.java
...rg/jkiss/dbeaver/ext/oracle/edit/OracleSchemaManager.java
+1
-1
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleTableColumnManager.java
...iss/dbeaver/ext/oracle/edit/OracleTableColumnManager.java
+1
-1
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleUtils.java
...e/src/org/jkiss/dbeaver/ext/oracle/model/OracleUtils.java
+2
-2
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/DBUtils.java
浏览文件 @
3d7101c7
...
...
@@ -26,6 +26,7 @@ import org.jkiss.dbeaver.core.Log;
import
org.jkiss.dbeaver.model.data.*
;
import
org.jkiss.dbeaver.model.edit.DBEPersistAction
;
import
org.jkiss.dbeaver.model.exec.*
;
import
org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer
;
import
org.jkiss.dbeaver.model.impl.data.DefaultValueHandler
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.*
;
...
...
@@ -40,6 +41,8 @@ import org.jkiss.utils.CommonUtils;
import
java.sql.SQLException
;
import
java.util.*
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* DBUtils
...
...
@@ -47,6 +50,7 @@ import java.util.*;
public
final
class
DBUtils
{
static
final
Log
log
=
Log
.
getLog
(
DBUtils
.
class
);
private
static
final
Pattern
EXEC_PATTERN
=
Pattern
.
compile
(
"[a-z]+\\s+([^(]+)\\s*\\("
);
public
static
<
TYPE
extends
DBSObject
>
Comparator
<
TYPE
>
nameComparator
()
{
...
...
@@ -803,9 +807,13 @@ public final class DBUtils {
String
query
,
boolean
scrollable
)
throws
DBCException
{
DBCStatementType
statementType
=
DBCStatementType
.
SCRIPT
;
query
=
SQLUtils
.
makeUnifiedLineFeeds
(
query
);
if
(
isExecQuery
(
session
.
getDataSource
(),
query
))
{
statementType
=
DBCStatementType
.
EXEC
;
}
return
session
.
prepareStatement
(
DBCStatementType
.
SCRIPT
,
statementType
,
query
,
scrollable
&&
session
.
getDataSource
().
getInfo
().
supportsResultSetScroll
(),
false
,
...
...
@@ -829,7 +837,7 @@ public final class DBUtils {
statementType = DBCStatementType.EXEC;
}
*/
if
(
isExecQuery
(
session
,
query
))
{
if
(
isExecQuery
(
session
.
getDataSource
()
,
query
))
{
statementType
=
DBCStatementType
.
EXEC
;
}
...
...
@@ -841,8 +849,7 @@ public final class DBUtils {
false
);
}
public
static
boolean
isExecQuery
(
DBCSession
session
,
String
query
)
{
DBPDataSource
dataSource
=
session
.
getDataSource
();
public
static
boolean
isExecQuery
(
DBPDataSource
dataSource
,
String
query
)
{
if
(
dataSource
instanceof
SQLDataSource
)
{
// Check for EXEC query
final
Collection
<
String
>
executeKeywords
=
((
SQLDataSource
)
dataSource
).
getSQLDialect
().
getExecuteKeywords
();
...
...
@@ -1253,4 +1260,43 @@ public final class DBUtils {
return
null
;
//VoidTransactionManager.INSTANCE;
}
public
static
DBSProcedure
findProcedure
(
DBCSession
session
,
String
queryString
)
throws
DBException
{
DBPDataSource
dataSource
=
session
.
getDataSource
();
if
(!
CommonUtils
.
isEmpty
(
queryString
))
{
Matcher
matcher
=
EXEC_PATTERN
.
matcher
(
queryString
);
if
(
matcher
.
find
())
{
String
procName
=
matcher
.
group
(
1
);
char
divChar
=
0
;
if
(
dataSource
instanceof
SQLDataSource
)
{
divChar
=
((
SQLDataSource
)
dataSource
).
getSQLDialect
().
getStructSeparator
();
}
if
(
procName
.
indexOf
(
divChar
)
!=
-
1
)
{
return
findProcedureByNames
(
session
,
procName
.
split
(
"\\"
+
divChar
));
}
else
{
return
findProcedureByNames
(
session
,
procName
);
}
}
}
return
null
;
}
private
static
DBSProcedure
findProcedureByNames
(
DBCSession
session
,
String
...
names
)
throws
DBException
{
if
(!(
session
.
getDataSource
()
instanceof
DBSObjectContainer
))
{
return
null
;
}
DBSObjectContainer
container
=
(
DBSObjectContainer
)
session
.
getDataSource
();
for
(
int
i
=
0
;
i
<
names
.
length
-
1
;
i
++)
{
DBSObject
child
=
container
.
getChild
(
session
.
getProgressMonitor
(),
DBObjectNameCaseTransformer
.
transformName
(
session
.
getDataSource
(),
names
[
i
]));
if
(
child
instanceof
DBSObjectContainer
)
{
container
=
(
DBSObjectContainer
)
child
;
}
else
{
return
null
;
}
}
if
(
container
instanceof
DBSProcedureContainer
)
{
return
((
DBSProcedureContainer
)
container
).
getProcedure
(
session
.
getProgressMonitor
(),
DBObjectNameCaseTransformer
.
transformName
(
session
.
getDataSource
(),
names
[
names
.
length
-
1
]));
}
return
null
;
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/DBObjectNameCaseTransformer.java
浏览文件 @
3d7101c7
...
...
@@ -38,7 +38,7 @@ public class DBObjectNameCaseTransformer implements IPropertyValueTransformer<DB
return
transformName
(
object
.
getDataSource
(),
value
);
}
public
static
String
transformName
(
DBSObject
object
,
String
value
)
public
static
String
transform
Object
Name
(
DBSObject
object
,
String
value
)
{
return
transformName
(
object
.
getDataSource
(),
value
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCUtils.java
浏览文件 @
3d7101c7
...
...
@@ -17,24 +17,34 @@
*/
package
org.jkiss.dbeaver.model.impl.jdbc
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPDataKind
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPDataTypeProvider
;
import
org.jkiss.dbeaver.model.exec.DBCSession
;
import
org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer
;
import
org.jkiss.dbeaver.model.sql.SQLDataSource
;
import
org.jkiss.dbeaver.model.sql.SQLUtils
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCSession
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSObjectContainer
;
import
org.jkiss.dbeaver.model.struct.DBSObjectFilter
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSForeignKeyModifyRule
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedure
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedureContainer
;
import
org.jkiss.utils.CommonUtils
;
import
java.lang.reflect.InvocationTargetException
;
import
java.math.BigDecimal
;
import
java.sql.*
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* JDBCUtils
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/exec/JDBCCallableStatementImpl.java
浏览文件 @
3d7101c7
...
...
@@ -20,12 +20,12 @@ package org.jkiss.dbeaver.model.impl.jdbc.exec;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.DBCException
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCCallableStatement
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCSession
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils
;
import
org.jkiss.dbeaver.model.impl.local.LocalResultSet
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedure
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedureParameter
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedureParameterType
;
...
...
@@ -55,6 +55,15 @@ public class JDBCCallableStatementImpl extends JDBCPreparedStatementImpl impleme
boolean
disableLogging
)
{
super
(
connection
,
original
,
query
,
disableLogging
);
// Try to bind parameters
try
{
DBSProcedure
procedure
=
DBUtils
.
findProcedure
(
connection
,
query
);
if
(
procedure
!=
null
)
{
bindProcedure
(
procedure
);
}
}
catch
(
Exception
e
)
{
log
.
debug
(
e
);
}
}
@Override
...
...
@@ -67,6 +76,7 @@ public class JDBCCallableStatementImpl extends JDBCPreparedStatementImpl impleme
// Procedure bindings
////////////////////////////////////////////////////////////////////
void
bindProcedure
(
@NotNull
DBSProcedure
procedure
)
throws
DBException
{
this
.
procedure
=
procedure
;
try
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/exec/JDBCConnectionImpl.java
浏览文件 @
3d7101c7
...
...
@@ -25,6 +25,7 @@ import org.jkiss.dbeaver.model.data.DBDValueHandler;
import
org.jkiss.dbeaver.model.exec.*
;
import
org.jkiss.dbeaver.model.exec.jdbc.*
;
import
org.jkiss.dbeaver.model.impl.AbstractSession
;
import
org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCException
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext
;
...
...
@@ -687,54 +688,7 @@ public class JDBCConnectionImpl extends AbstractSession implements JDBCSession,
if
(
original
==
null
)
{
throw
new
IllegalArgumentException
(
"Null statement"
);
}
JDBCCallableStatementImpl
call
=
new
JDBCCallableStatementImpl
(
this
,
original
,
sql
,
!
isLoggingEnabled
());
// Try to bind parameters
try
{
DBSProcedure
procedure
=
findCallable
(
call
);
if
(
procedure
!=
null
)
{
call
.
bindProcedure
(
procedure
);
}
}
catch
(
Exception
e
)
{
log
.
debug
(
e
);
}
return
call
;
}
private
static
final
Pattern
EXEC_PATTERN
=
Pattern
.
compile
(
"[a-z]+\\s+([^(]+)\\s*\\("
);
public
final
DBSProcedure
findCallable
(
JDBCCallableStatementImpl
call
)
throws
DBException
{
String
queryString
=
call
.
getQueryString
();
if
(!
CommonUtils
.
isEmpty
(
queryString
))
{
Matcher
matcher
=
EXEC_PATTERN
.
matcher
(
queryString
);
if
(
matcher
.
find
())
{
String
procName
=
matcher
.
group
(
1
);
char
divChar
=
getDataSource
().
getSQLDialect
().
getStructSeparator
();
if
(
procName
.
indexOf
(
divChar
)
!=
-
1
)
{
return
findCallable
(
procName
.
split
(
"\\"
+
divChar
));
}
else
{
return
findCallable
(
procName
);
}
}
}
return
null
;
}
private
DBSProcedure
findCallable
(
String
...
names
)
throws
DBException
{
DBSObjectContainer
container
=
getDataSource
();
for
(
int
i
=
0
;
i
<
names
.
length
-
1
;
i
++)
{
DBSObject
child
=
container
.
getChild
(
getProgressMonitor
(),
names
[
i
]);
if
(
child
instanceof
DBSObjectContainer
)
{
container
=
(
DBSObjectContainer
)
child
;
}
else
{
return
null
;
}
}
if
(
container
instanceof
DBSProcedureContainer
)
{
return
((
DBSProcedureContainer
)
container
).
getProcedure
(
getProgressMonitor
(),
names
[
names
.
length
-
1
]);
}
return
null
;
return
new
JDBCCallableStatementImpl
(
this
,
original
,
sql
,
!
isLoggingEnabled
());
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/local/LocalResultSetColumn.java
浏览文件 @
3d7101c7
...
...
@@ -21,6 +21,8 @@ package org.jkiss.dbeaver.model.impl.local;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPDataKind
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.DBPImageProvider
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.data.DBDPseudoAttribute
;
import
org.jkiss.dbeaver.model.exec.DBCAttributeMetaData
;
...
...
@@ -30,7 +32,7 @@ import org.jkiss.dbeaver.model.struct.DBSTypedObject;
/**
* LocalResultSetColumn
*/
public
class
LocalResultSetColumn
implements
DBCAttributeMetaData
public
class
LocalResultSetColumn
implements
DBCAttributeMetaData
,
DBPImageProvider
{
private
final
LocalResultSet
resultSet
;
private
final
int
index
;
...
...
@@ -159,4 +161,10 @@ public class LocalResultSetColumn implements DBCAttributeMetaData
{
return
typedObject
==
null
?
0
:
typedObject
.
getMaxLength
();
}
@Nullable
@Override
public
DBPImage
getObjectImage
()
{
return
DBUtils
.
getDataIcon
(
this
);
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
浏览文件 @
3d7101c7
...
...
@@ -691,7 +691,7 @@ public class SQLEditor extends SQLEditorBase implements
if
(
getActivePreferenceStore
().
getBoolean
(
DBeaverPreferences
.
SQL_PARAMETERS_ENABLED
))
{
// Parse parameters
for
(
SQLQuery
query
:
queryList
)
{
query
.
setParameters
(
parseParameters
(
getDocument
(),
query
.
getOffset
(),
query
.
getLength
()
));
query
.
setParameters
(
parseParameters
(
getDocument
(),
query
));
}
}
return
queryList
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
浏览文件 @
3d7101c7
...
...
@@ -52,6 +52,7 @@ import org.jkiss.dbeaver.core.DBeaverUI;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.sql.*
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
...
...
@@ -468,7 +469,7 @@ public abstract class SQLEditorBase extends BaseTextEditor {
return
null
;
}
if
(
getActivePreferenceStore
().
getBoolean
(
DBeaverPreferences
.
SQL_PARAMETERS_ENABLED
))
{
sqlQuery
.
setParameters
(
parseParameters
(
getDocument
(),
sqlQuery
.
getOffset
(),
sqlQuery
.
getLength
()
));
sqlQuery
.
setParameters
(
parseParameters
(
getDocument
(),
sqlQuery
));
}
return
sqlQuery
;
}
...
...
@@ -620,15 +621,16 @@ public abstract class SQLEditorBase extends BaseTextEditor {
}
}
protected
List
<
SQLQueryParameter
>
parseParameters
(
IDocument
document
,
int
offset
,
int
length
)
{
protected
List
<
SQLQueryParameter
>
parseParameters
(
IDocument
document
,
SQLQuery
query
)
{
boolean
execQuery
=
DBUtils
.
isExecQuery
(
getDataSource
(),
query
.
getQuery
());
List
<
SQLQueryParameter
>
parameters
=
null
;
syntaxManager
.
setRange
(
document
,
offset
,
length
);
syntaxManager
.
setRange
(
document
,
query
.
getOffset
(),
query
.
getLength
()
);
int
blockDepth
=
0
;
for
(;;)
{
IToken
token
=
syntaxManager
.
nextToken
();
int
tokenOffset
=
syntaxManager
.
getTokenOffset
();
final
int
tokenLength
=
syntaxManager
.
getTokenLength
();
if
(
token
.
isEOF
()
||
tokenOffset
>
offset
+
length
)
{
if
(
token
.
isEOF
()
||
tokenOffset
>
query
.
getOffset
()
+
query
.
getLength
()
)
{
break
;
}
// Handle only parameters which are not in SQL blocks
...
...
@@ -639,15 +641,20 @@ public abstract class SQLEditorBase extends BaseTextEditor {
}
if
(
token
instanceof
SQLParameterToken
&&
tokenLength
>
0
&&
blockDepth
<=
0
)
{
try
{
String
paramName
=
document
.
get
(
tokenOffset
,
tokenLength
);
if
(
execQuery
&&
paramName
.
equals
(
"?"
))
{
// Skip ? parameters for stored procedures (they have special meaning? [DB2])
continue
;
}
if
(
parameters
==
null
)
{
parameters
=
new
ArrayList
<
SQLQueryParameter
>();
}
String
paramName
=
document
.
get
(
tokenOffset
,
tokenLength
);
SQLQueryParameter
parameter
=
new
SQLQueryParameter
(
parameters
.
size
(),
paramName
,
tokenOffset
-
offset
,
tokenOffset
-
query
.
getOffset
()
,
tokenLength
);
SQLQueryParameter
previous
=
null
;
...
...
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2ForeignKeyManager.java
浏览文件 @
3d7101c7
...
...
@@ -103,7 +103,7 @@ public class DB2ForeignKeyManager extends SQLForeignKeyManager<DB2TableForeignKe
DB2TableForeignKey
foreignKey
=
new
DB2TableForeignKey
(
db2Table
,
ukConstraint
,
deleteRule
,
updateRule
);
String
fkBaseName
=
String
.
format
(
CONS_FK_NAME
,
tableName
,
targetTableName
);
String
fkName
=
DBObjectNameCaseTransformer
.
transformName
(
foreignKey
,
fkBaseName
);
String
fkName
=
DBObjectNameCaseTransformer
.
transform
Object
Name
(
foreignKey
,
fkBaseName
);
foreignKey
.
setName
(
fkName
);
...
...
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2IndexManager.java
浏览文件 @
3d7101c7
...
...
@@ -89,7 +89,7 @@ public class DB2IndexManager extends SQLIndexManager<DB2Index, DB2Table> {
String
colName
=
CommonUtils
.
escapeIdentifier
(
editDialog
.
getSelectedAttributes
().
iterator
().
next
().
getName
());
String
indexBaseName
=
String
.
format
(
CONS_IX_NAME
,
tableName
,
colName
);
String
indexName
=
DBObjectNameCaseTransformer
.
transformName
(
(
DBPDataSource
)
db2Table
.
getDataSource
(),
indexBaseName
);
String
indexName
=
DBObjectNameCaseTransformer
.
transformName
(
db2Table
.
getDataSource
(),
indexBaseName
);
DB2Index
index
=
new
DB2Index
(
db2Table
,
indexName
,
editDialog
.
getIndexType
());
...
...
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2TableColumnManager.java
浏览文件 @
3d7101c7
...
...
@@ -88,7 +88,7 @@ public class DB2TableColumnManager extends SQLTableColumnManager<DB2TableColumn,
Object
copyFrom
)
{
DB2TableColumn
column
=
new
DB2TableColumn
(
parent
);
column
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
column
,
getNewColumnName
(
context
,
parent
)));
return
column
;
}
...
...
plugins/org.jkiss.dbeaver.db2/src/org/jkiss/dbeaver/ext/db2/manager/DB2UniqueKeyManager.java
浏览文件 @
3d7101c7
...
...
@@ -96,7 +96,7 @@ public class DB2UniqueKeyManager extends SQLConstraintManager<DB2TableUniqueKey,
DB2TableUniqueKey
constraint
=
new
DB2TableUniqueKey
(
db2Table
,
editDialog
.
getConstraintType
());
String
constraintName
=
DBObjectNameCaseTransformer
.
transformName
(
constraint
,
String
constraintName
=
DBObjectNameCaseTransformer
.
transform
Object
Name
(
constraint
,
CommonUtils
.
escapeIdentifier
(
db2Table
.
getName
())
+
suffix
);
constraint
.
setName
(
constraintName
);
...
...
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericForeignKeyManager.java
浏览文件 @
3d7101c7
...
...
@@ -68,9 +68,9 @@ public class GenericForeignKeyManager extends SQLForeignKeyManager<GenericTableF
editDialog
.
getOnUpdateRule
(),
DBSForeignKeyDefferability
.
NOT_DEFERRABLE
,
false
);
foreignKey
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
foreignKey
,
CommonUtils
.
escapeIdentifier
(
table
.
getName
())
+
"_"
+
CommonUtils
.
escapeIdentifier
(
editDialog
.
getUniqueConstraint
().
getParentObject
().
getName
())
+
"_FK"
));
foreignKey
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
foreignKey
,
CommonUtils
.
escapeIdentifier
(
table
.
getName
())
+
"_"
+
CommonUtils
.
escapeIdentifier
(
editDialog
.
getUniqueConstraint
().
getParentObject
().
getName
())
+
"_FK"
));
int
colIndex
=
1
;
for
(
EditForeignKeyDialog
.
FKColumnInfo
tableColumn
:
editDialog
.
getColumns
())
{
foreignKey
.
addColumn
(
...
...
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericIndexManager.java
浏览文件 @
3d7101c7
...
...
@@ -85,7 +85,7 @@ public class GenericIndexManager extends SQLIndexManager<GenericTableIndex, Gene
true
));
}
idxName
.
append
(
"_IDX"
);
index
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
index
,
idxName
.
toString
()));
index
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
index
,
idxName
.
toString
()));
return
index
;
}
...
...
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericPrimaryKeyManager.java
浏览文件 @
3d7101c7
...
...
@@ -63,7 +63,7 @@ public class GenericPrimaryKeyManager extends SQLConstraintManager<GenericPrimar
null
,
editDialog
.
getConstraintType
(),
false
);
primaryKey
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
primaryKey
,
CommonUtils
.
escapeIdentifier
(
parent
.
getName
())
+
"_PK"
));
primaryKey
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
primaryKey
,
CommonUtils
.
escapeIdentifier
(
parent
.
getName
())
+
"_PK"
));
int
colIndex
=
1
;
for
(
DBSEntityAttribute
tableColumn
:
editDialog
.
getSelectedAttributes
())
{
primaryKey
.
addColumn
(
...
...
plugins/org.jkiss.dbeaver.generic/src/org/jkiss/dbeaver/ext/generic/edit/GenericTableColumnManager.java
浏览文件 @
3d7101c7
...
...
@@ -52,7 +52,7 @@ public class GenericTableColumnManager extends SQLTableColumnManager<GenericTabl
DBSDataType
columnType
=
findBestDataType
(
parent
.
getDataSource
(),
DBConstants
.
DEFAULT_DATATYPE_NAMES
);
final
GenericTableColumn
column
=
new
GenericTableColumn
(
parent
);
column
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setTypeName
(
columnType
==
null
?
"INTEGER"
:
columnType
.
getName
());
column
.
setMaxLength
(
columnType
!=
null
&&
columnType
.
getDataKind
()
==
DBPDataKind
.
STRING
?
100
:
0
);
column
.
setValueType
(
columnType
==
null
?
Types
.
INTEGER
:
columnType
.
getTypeID
());
...
...
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLConstraintManager.java
浏览文件 @
3d7101c7
...
...
@@ -66,7 +66,7 @@ public class MySQLConstraintManager extends SQLConstraintManager<MySQLTableConst
null
,
editDialog
.
getConstraintType
(),
false
);
constraint
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
constraint
,
CommonUtils
.
escapeIdentifier
(
parent
.
getName
())
+
"_PK"
));
//$NON-NLS-1$
constraint
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
constraint
,
CommonUtils
.
escapeIdentifier
(
parent
.
getName
())
+
"_PK"
));
//$NON-NLS-1$
int
colIndex
=
1
;
for
(
DBSEntityAttribute
tableColumn
:
editDialog
.
getSelectedAttributes
())
{
constraint
.
addColumn
(
...
...
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLForeignKeyManager.java
浏览文件 @
3d7101c7
...
...
@@ -68,9 +68,9 @@ public class MySQLForeignKeyManager extends SQLForeignKeyManager<MySQLTableForei
editDialog
.
getOnDeleteRule
(),
editDialog
.
getOnUpdateRule
(),
false
);
foreignKey
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
foreignKey
,
CommonUtils
.
escapeIdentifier
(
table
.
getName
())
+
"_"
+
//$NON-NLS-1$
CommonUtils
.
escapeIdentifier
(
editDialog
.
getUniqueConstraint
().
getParentObject
().
getName
())
+
"_FK"
));
//$NON-NLS-1$
foreignKey
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
foreignKey
,
CommonUtils
.
escapeIdentifier
(
table
.
getName
())
+
"_"
+
//$NON-NLS-1$
CommonUtils
.
escapeIdentifier
(
editDialog
.
getUniqueConstraint
().
getParentObject
().
getName
())
+
"_FK"
));
//$NON-NLS-1$
int
colIndex
=
1
;
for
(
EditForeignKeyDialog
.
FKColumnInfo
tableColumn
:
editDialog
.
getColumns
())
{
foreignKey
.
addColumn
(
...
...
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLIndexManager.java
浏览文件 @
3d7101c7
...
...
@@ -82,7 +82,7 @@ public class MySQLIndexManager extends SQLIndexManager<MySQLTableIndex, MySQLTab
false
));
}
idxName
.
append
(
"_IDX"
);
//$NON-NLS-1$
index
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
index
,
idxName
.
toString
()));
index
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
index
,
idxName
.
toString
()));
return
index
;
}
...
...
plugins/org.jkiss.dbeaver.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLTableColumnManager.java
浏览文件 @
3d7101c7
...
...
@@ -67,7 +67,7 @@ public class MySQLTableColumnManager extends SQLTableColumnManager<MySQLTableCol
DBSDataType
columnType
=
findBestDataType
(
parent
.
getDataSource
(),
"varchar"
);
//$NON-NLS-1$
final
MySQLTableColumn
column
=
new
MySQLTableColumn
(
parent
);
column
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setTypeName
(
columnType
==
null
?
"INTEGER"
:
columnType
.
getName
());
//$NON-NLS-1$
column
.
setMaxLength
(
columnType
!=
null
&&
columnType
.
getDataKind
()
==
DBPDataKind
.
STRING
?
100
:
0
);
column
.
setValueType
(
columnType
==
null
?
Types
.
INTEGER
:
columnType
.
getTypeID
());
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleConstraintManager.java
浏览文件 @
3d7101c7
...
...
@@ -67,7 +67,7 @@ public class OracleConstraintManager extends SQLConstraintManager<OracleTableCon
editDialog
.
getConstraintType
(),
null
,
OracleObjectStatus
.
ENABLED
);
constraint
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
constraint
,
CommonUtils
.
escapeIdentifier
(
parent
.
getName
())
+
"_PK"
));
//$NON-NLS-1$
constraint
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
constraint
,
CommonUtils
.
escapeIdentifier
(
parent
.
getName
())
+
"_PK"
));
//$NON-NLS-1$
int
colIndex
=
1
;
for
(
DBSEntityAttribute
tableColumn
:
editDialog
.
getSelectedAttributes
())
{
constraint
.
addColumn
(
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleForeignKeyManager.java
浏览文件 @
3d7101c7
...
...
@@ -67,9 +67,9 @@ public class OracleForeignKeyManager extends SQLForeignKeyManager<OracleTableFor
null
,
(
OracleTableConstraint
)
editDialog
.
getUniqueConstraint
(),
editDialog
.
getOnDeleteRule
());
foreignKey
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
foreignKey
,
CommonUtils
.
escapeIdentifier
(
table
.
getName
())
+
"_"
+
//$NON-NLS-1$
CommonUtils
.
escapeIdentifier
(
editDialog
.
getUniqueConstraint
().
getParentObject
().
getName
())
+
"_FK"
));
//$NON-NLS-1$
foreignKey
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
foreignKey
,
CommonUtils
.
escapeIdentifier
(
table
.
getName
())
+
"_"
+
//$NON-NLS-1$
CommonUtils
.
escapeIdentifier
(
editDialog
.
getUniqueConstraint
().
getParentObject
().
getName
())
+
"_FK"
));
//$NON-NLS-1$
int
colIndex
=
1
;
for
(
EditForeignKeyDialog
.
FKColumnInfo
tableColumn
:
editDialog
.
getColumns
())
{
foreignKey
.
addColumn
(
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleIndexManager.java
浏览文件 @
3d7101c7
...
...
@@ -72,7 +72,7 @@ public class OracleIndexManager extends SQLIndexManager<OracleTableIndex, Oracle
final
OracleTableIndex
index
=
new
OracleTableIndex
(
parent
.
getSchema
(),
parent
,
DBObjectNameCaseTransformer
.
transformName
(
(
DBPDataSource
)
parent
.
getDataSource
(),
idxName
.
toString
()),
DBObjectNameCaseTransformer
.
transformName
(
parent
.
getDataSource
(),
idxName
.
toString
()),
false
,
editDialog
.
getIndexType
());
int
colIndex
=
1
;
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleSchemaManager.java
浏览文件 @
3d7101c7
...
...
@@ -142,7 +142,7 @@ public class OracleSchemaManager extends SQLObjectEditor<OracleSchema, OracleDat
@Override
protected
void
okPressed
()
{
user
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
user
,
nameText
.
getText
()));
user
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
user
,
nameText
.
getText
()));
user
.
setPassword
(
passwordText
.
getText
());
super
.
okPressed
();
}
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleTableColumnManager.java
浏览文件 @
3d7101c7
...
...
@@ -67,7 +67,7 @@ public class OracleTableColumnManager extends SQLTableColumnManager<OracleTableC
DBSDataType
columnType
=
findBestDataType
(
parent
.
getDataSource
(),
"varchar2"
);
//$NON-NLS-1$
final
OracleTableColumn
column
=
new
OracleTableColumn
(
parent
);
column
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
column
,
getNewColumnName
(
context
,
parent
)));
column
.
setType
((
OracleDataType
)
columnType
);
column
.
setTypeName
(
columnType
==
null
?
"INTEGER"
:
columnType
.
getName
());
//$NON-NLS-1$
column
.
setMaxLength
(
columnType
!=
null
&&
columnType
.
getDataKind
()
==
DBPDataKind
.
STRING
?
100
:
0
);
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleUtils.java
浏览文件 @
3d7101c7
...
...
@@ -133,7 +133,7 @@ public class OracleUtils {
String
objectName
=
matcher
.
group
(
2
);
if
(
objectName
.
indexOf
(
'.'
)
==
-
1
)
{
if
(!
objectName
.
equalsIgnoreCase
(
object
.
getName
()))
{
object
.
setName
(
DBObjectNameCaseTransformer
.
transformName
(
object
,
objectName
));
object
.
setName
(
DBObjectNameCaseTransformer
.
transform
Object
Name
(
object
,
objectName
));
object
.
getDataSource
().
getContainer
().
fireEvent
(
new
DBPEvent
(
DBPEvent
.
Action
.
OBJECT_UPDATE
,
object
));
}
return
source
;
//.substring(0, matcher.start(1)) + object.getSchema().getName() + "." + objectName + source.substring(matcher.end(2));
...
...
@@ -270,7 +270,7 @@ public class OracleUtils {
try
{
dbStat
.
setString
(
1
,
objectType
.
getTypeName
());
dbStat
.
setString
(
2
,
object
.
getSchema
().
getName
());
dbStat
.
setString
(
3
,
DBObjectNameCaseTransformer
.
transformName
(
object
,
object
.
getName
()));
dbStat
.
setString
(
3
,
DBObjectNameCaseTransformer
.
transform
Object
Name
(
object
,
object
.
getName
()));
final
JDBCResultSet
dbResult
=
dbStat
.
executeQuery
();
try
{
if
(
dbResult
.
next
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录