Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
ae89496f
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,发现更多精彩内容 >>
提交
ae89496f
编写于
12月 03, 2016
作者:
C
Charly
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merged Identity Column Information with AutoIncrement Info
上级
a514ae77
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
65 addition
and
13 deletion
+65
-13
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/manager/ExasolTableColumnManager.java
.../dbeaver/ext/exasol/manager/ExasolTableColumnManager.java
+18
-1
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/model/ExasolTableColumn.java
...org/jkiss/dbeaver/ext/exasol/model/ExasolTableColumn.java
+47
-12
未找到文件。
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/manager/ExasolTableColumnManager.java
浏览文件 @
ae89496f
...
...
@@ -35,6 +35,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.utils.CommonUtils
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -94,7 +95,7 @@ public class ExasolTableColumnManager extends SQLTableColumnManager<ExasolTableC
if
(!
command
.
getProperties
().
isEmpty
())
{
final
String
deltaSQL
=
exasolColumn
.
getName
()
+
" "
+
exasolColumn
.
getFormatType
()
+
" "
+
(
exasolColumn
.
getDefaultValue
()
==
null
?
""
:
" DEFAULT "
+
exasolColumn
.
getDefaultValue
())
+
" "
+
(
exasolColumn
.
isIdentity
()
?
" IDENTITY "
+
exasolColumn
.
getIdentityValue
().
toString
()
:
""
)
+
" "
+
formatIdentiy
(
exasolColumn
.
isAutoGenerated
(),
exasolColumn
.
getIdentityValue
()
)
+
" "
+
(
exasolColumn
.
isRequired
()
?
"NOT NULL"
:
"NULL"
);
if
(!
deltaSQL
.
isEmpty
())
{
String
sqlAlterColumn
=
String
.
format
(
SQL_ALTER
,
exasolColumn
.
getTable
().
getFullyQualifiedName
(
DBPEvaluationContext
.
DDL
),
deltaSQL
);
...
...
@@ -109,6 +110,22 @@ public class ExasolTableColumnManager extends SQLTableColumnManager<ExasolTableC
}
}
private
String
formatIdentiy
(
Boolean
isAutoGenerated
,
BigDecimal
identityValue
)
{
String
ret
=
""
;
if
(
isAutoGenerated
)
{
ret
=
"IDENTITY "
;
if
(
identityValue
!=
null
)
{
ret
=
ret
+
identityValue
.
toString
()
+
" "
;
}
}
return
ret
;
}
// -------
// Helpers
...
...
plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/model/ExasolTableColumn.java
浏览文件 @
ae89496f
...
...
@@ -28,21 +28,26 @@ import org.jkiss.dbeaver.model.DBPHiddenObject;
import
org.jkiss.dbeaver.model.DBPNamedObject2
;
import
org.jkiss.dbeaver.model.impl.DBPositiveNumberTransformer
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils
;
import
org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCColumnKeyType
;
import
org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn
;
import
org.jkiss.dbeaver.model.meta.Property
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSDataType
;
import
org.jkiss.dbeaver.model.struct.DBSTypedObjectEx
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSTableColumn
;
import
org.jkiss.utils.CommonUtils
;
import
java.math.BigDecimal
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.Collection
;
/**
* @author Karl Griesser
*/
public
class
ExasolTableColumn
extends
JDBCTableColumn
<
ExasolTableBase
>
implements
DBSTableColumn
,
DBSTypedObjectEx
,
DBPHiddenObject
,
DBPNamedObject2
{
implements
DBSTableColumn
,
DBSTypedObjectEx
,
DBPHiddenObject
,
DBPNamedObject2
,
JDBCColumnKeyType
{
private
ExasolDataType
dataType
;
private
Boolean
identity
;
...
...
@@ -75,7 +80,6 @@ public class ExasolTableColumn extends JDBCTableColumn<ExasolTableBase>
this
.
identityValue
=
JDBCUtils
.
safeGetBigDecimal
(
dbResult
,
"COLUMN_IDENTITY"
);
this
.
remarks
=
JDBCUtils
.
safeGetString
(
dbResult
,
"COLUMN_COMMENT"
);
this
.
dataType
=
tableBase
.
getDataSource
().
getDataType
(
monitor
,
JDBCUtils
.
safeGetString
(
dbResult
,
"TYPE_NAME"
));
this
.
keySeq
=
JDBCUtils
.
safeGetInteger
(
dbResult
,
"KEY_SEQ"
);
this
.
changed
=
true
;
...
...
@@ -211,11 +215,6 @@ public class ExasolTableColumn extends JDBCTableColumn<ExasolTableBase>
super
.
setDefaultValue
(
defaultValue
);
}
@Property
(
viewable
=
true
,
editable
=
true
,
updatable
=
true
,
order
=
45
)
public
Boolean
isIdentity
()
{
return
identity
;
}
public
void
setIdentity
(
Boolean
identity
)
{
this
.
identity
=
identity
;
}
...
...
@@ -231,11 +230,6 @@ public class ExasolTableColumn extends JDBCTableColumn<ExasolTableBase>
this
.
remarks
=
remarks
;
}
@Property
(
viewable
=
false
,
order
=
120
)
public
Integer
getKeySeq
()
{
return
keySeq
;
}
@Property
(
viewable
=
false
,
order
=
121
)
public
Boolean
isDistKey
()
{
return
isInDistKey
;
...
...
@@ -247,6 +241,18 @@ public class ExasolTableColumn extends JDBCTableColumn<ExasolTableBase>
public
boolean
isHidden
()
{
return
false
;
}
@Override
@Property
(
viewable
=
true
,
editable
=
true
,
updatable
=
true
,
order
=
45
)
public
boolean
isAutoGenerated
()
{
return
this
.
identity
;
}
public
void
setAutoGenerated
(
Boolean
identity
)
{
this
.
identity
=
identity
;
}
public
String
getFormatType
()
{
if
(
changed
)
{
...
...
@@ -264,5 +270,34 @@ public class ExasolTableColumn extends JDBCTableColumn<ExasolTableBase>
return
this
.
formatType
;
}
@Override
@Property
(
viewable
=
true
,
order
=
80
)
public
boolean
isInUniqueKey
()
{
ExasolTableBase
table
=
(
ExasolTable
)
getTable
();
try
{
final
Collection
<
ExasolTableUniqueKey
>
uniqueKeysCache
=
table
.
getConstraints
(
VoidProgressMonitor
.
INSTANCE
);
if
(!
CommonUtils
.
isEmpty
(
uniqueKeysCache
))
{
for
(
ExasolTableUniqueKey
key
:
uniqueKeysCache
)
{
if
(
key
.
hasColumn
(
this
))
return
true
;
}
}
}
catch
(
DBException
e
)
{
return
false
;
}
return
false
;
}
@Override
public
boolean
isInReferenceKey
()
{
// don't need this one
return
false
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录