From ae89496f7a4db45d0227f2ded662bb7ee15b2aea Mon Sep 17 00:00:00 2001 From: Charly Date: Sat, 3 Dec 2016 13:23:03 +0100 Subject: [PATCH] Merged Identity Column Information with AutoIncrement Info --- .../manager/ExasolTableColumnManager.java | 19 +++++- .../ext/exasol/model/ExasolTableColumn.java | 59 +++++++++++++++---- 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/manager/ExasolTableColumnManager.java b/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/manager/ExasolTableColumnManager.java index e0fb5cdf29..6d531f43ed 100644 --- a/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/manager/ExasolTableColumnManager.java +++ b/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/manager/ExasolTableColumnManager.java @@ -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 - 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 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 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 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 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 return this.formatType; } + @Override + @Property(viewable = true, order = 80) + public boolean isInUniqueKey() + { + ExasolTableBase table = (ExasolTable) getTable(); + try { + final Collection 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; + } + } -- GitLab