提交 0583bafe 编写于 作者: S serge-rider

Merge remote-tracking branch 'origin/devel' into devel

......@@ -366,6 +366,7 @@
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OraclePackage"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleDataType" if="!object.predefined"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTrigger"/>
<objectType name="org.jkiss.dbeaver.ext.oracle.model.OracleTableIndex"/>
</editor>
<editor id="source.definition" class="org.jkiss.dbeaver.ext.oracle.editors.OracleSourceDefinitionEditor"
label="%editor.package.body.name" description="%editor.package.body.description" icon="#sql_text" position="additions_middle"
......
......@@ -20,7 +20,9 @@ import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
import org.jkiss.dbeaver.model.DBPScriptObject;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex;
import org.jkiss.dbeaver.model.meta.Association;
......@@ -31,18 +33,21 @@ import org.jkiss.dbeaver.model.struct.DBSObjectLazy;
import org.jkiss.dbeaver.model.struct.rdb.DBSIndexType;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* OracleTableIndex
*/
public class OracleTableIndex extends JDBCTableIndex<OracleSchema, OracleTablePhysical> implements DBSObjectLazy
public class OracleTableIndex extends JDBCTableIndex<OracleSchema, OracleTablePhysical> implements DBSObjectLazy, DBPScriptObject
{
private Object tablespace;
private boolean nonUnique;
private List<OracleTableIndexColumn> columns;
private String indexDDL;
public OracleTableIndex(
OracleSchema schema,
......@@ -150,4 +155,22 @@ public class OracleTableIndex extends JDBCTableIndex<OracleSchema, OracleTablePh
{
return getFullyQualifiedName(DBPEvaluationContext.UI);
}
@Override
@Property(hidden = true, editable = true, updatable = true, order = -1)
public String getObjectDefinitionText(DBRProgressMonitor monitor, Map<String, Object> options) throws DBException {
if (indexDDL == null && isPersisted()) {
try (JDBCSession session = DBUtils.openMetaSession(monitor, this, "Read index definition")) {
indexDDL = JDBCUtils.queryString(session,"SELECT DBMS_METADATA.GET_DDL('INDEX', ?, ?) TXT FROM DUAL",
getName(),
getTable().getSchema().getName());
} catch (SQLException e) {
throw new DBException(e, getDataSource());
}
}
return indexDDL;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册