From a5620ebc1aeccc08a9d944171ec8a0fe7f662077 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Thu, 16 May 2019 19:15:41 +0300 Subject: [PATCH] Oracle: module rename, geometry support Former-commit-id: 5845e8cf19de15c0ee02b792956750e550f93cfb --- .../ext/oracle/data/OracleObjectValueHandler.java | 10 +++++++--- .../jdbc/data/handlers/JDBCStructValueHandler.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleObjectValueHandler.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleObjectValueHandler.java index e30440afdf..ded26d0e67 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleObjectValueHandler.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleObjectValueHandler.java @@ -24,14 +24,16 @@ import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession; import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement; import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet; import org.jkiss.dbeaver.model.impl.jdbc.data.handlers.JDBCAbstractValueHandler; +import org.jkiss.dbeaver.model.impl.jdbc.data.handlers.JDBCStructValueHandler; import org.jkiss.dbeaver.model.struct.DBSTypedObject; import java.sql.SQLException; +import java.sql.Struct; /** * Object type support */ -public class OracleObjectValueHandler extends JDBCAbstractValueHandler { +public class OracleObjectValueHandler extends JDBCStructValueHandler { public static final OracleObjectValueHandler INSTANCE = new OracleObjectValueHandler(); @@ -47,7 +49,7 @@ public class OracleObjectValueHandler extends JDBCAbstractValueHandler { } @Override - protected OracleObjectValue fetchColumnValue(DBCSession session, JDBCResultSet resultSet, DBSTypedObject type, int index) throws DBCException, SQLException + protected Object fetchColumnValue(DBCSession session, JDBCResultSet resultSet, DBSTypedObject type, int index) throws DBCException, SQLException { //final Object object = resultSet.getObject(columnIndex); Object object = resultSet.getObject(index); @@ -68,10 +70,12 @@ public class OracleObjectValueHandler extends JDBCAbstractValueHandler { } @Override - public OracleObjectValue getValueFromObject(@NotNull DBCSession session, @NotNull DBSTypedObject type, Object object, boolean copy) throws DBCException + public Object getValueFromObject(@NotNull DBCSession session, @NotNull DBSTypedObject type, Object object, boolean copy) throws DBCException { if (object == null) { return new OracleObjectValue(null); + } else if (object instanceof Struct) { + return super.getValueFromObject(session, type, object, copy); } else if (object instanceof OracleObjectValue) { return copy ? new OracleObjectValue(((OracleObjectValue) object).getValue()) : (OracleObjectValue)object; } else { diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStructValueHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStructValueHandler.java index 28cdd0fa3d..a98f1c66a4 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStructValueHandler.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStructValueHandler.java @@ -70,7 +70,7 @@ public class JDBCStructValueHandler extends JDBCComplexValueHandler implements D @NotNull @Override - public Class getValueObjectType(@NotNull DBSTypedObject attribute) + public Class getValueObjectType(@NotNull DBSTypedObject attribute) { return JDBCComposite.class; } -- GitLab