From cc5da9522a2cbc50c0e975692eb83a9e240393d5 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Thu, 29 Aug 2019 14:09:19 +0200 Subject: [PATCH] Defautl format generator fix (use session) Former-commit-id: d1a4ed8f8197612e892f55ef340bd45665e29099 --- .../dbeaver/model/data/DBDValueDefaultGenerator.java | 3 ++- .../dbeaver/model/impl/data/DateTimeValueHandler.java | 4 ++-- .../impl/jdbc/data/handlers/JDBCBooleanValueHandler.java | 2 +- .../impl/jdbc/data/handlers/JDBCNumberValueHandler.java | 2 +- .../impl/jdbc/data/handlers/JDBCStringValueHandler.java | 2 +- .../ui/controls/resultset/ResultSetHandlerMain.java | 9 +++++++-- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDValueDefaultGenerator.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDValueDefaultGenerator.java index 34a7a9c740..6f767d7819 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDValueDefaultGenerator.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDValueDefaultGenerator.java @@ -17,6 +17,7 @@ package org.jkiss.dbeaver.model.data; +import org.jkiss.dbeaver.model.exec.DBCSession; import org.jkiss.dbeaver.model.struct.DBSTypedObject; /** @@ -26,6 +27,6 @@ public interface DBDValueDefaultGenerator { String getDefaultValueLabel(); - Object generateDefaultValue(DBSTypedObject type); + Object generateDefaultValue(DBCSession session, DBSTypedObject type); } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/DateTimeValueHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/DateTimeValueHandler.java index 03d24fb89d..c1f1c566ed 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/DateTimeValueHandler.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/DateTimeValueHandler.java @@ -67,9 +67,9 @@ public abstract class DateTimeValueHandler extends BaseValueHandler implements D } @Override - public Object generateDefaultValue(DBSTypedObject type) { + public Object generateDefaultValue(DBCSession session, DBSTypedObject type) { try { - return getValueFromObject(null, type, new Date(), false); + return getValueFromObject(session, type, new Date(), false); } catch (DBCException e) { log.debug("Error getting current time stamp", e); return null; diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCBooleanValueHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCBooleanValueHandler.java index fdb8500b47..7574adcb38 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCBooleanValueHandler.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCBooleanValueHandler.java @@ -90,7 +90,7 @@ public class JDBCBooleanValueHandler extends JDBCAbstractValueHandler implements } @Override - public Object generateDefaultValue(DBSTypedObject type) { + public Object generateDefaultValue(DBCSession session, DBSTypedObject type) { return false; } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCNumberValueHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCNumberValueHandler.java index f49c3e4f02..ad976cf282 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCNumberValueHandler.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCNumberValueHandler.java @@ -359,7 +359,7 @@ public class JDBCNumberValueHandler extends JDBCAbstractValueHandler implements } @Override - public Object generateDefaultValue(DBSTypedObject type) { + public Object generateDefaultValue(DBCSession session, DBSTypedObject type) { switch (type.getTypeID()) { case Types.BIGINT: return 0L; diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStringValueHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStringValueHandler.java index c9b4a9064e..55c0700039 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStringValueHandler.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCStringValueHandler.java @@ -96,7 +96,7 @@ public class JDBCStringValueHandler extends JDBCAbstractValueHandler implements } @Override - public Object generateDefaultValue(DBSTypedObject type) { + public Object generateDefaultValue(DBCSession session, DBSTypedObject type) { return ""; } } \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetHandlerMain.java b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetHandlerMain.java index 1745fc9771..7bda839022 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetHandlerMain.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetHandlerMain.java @@ -49,8 +49,11 @@ import org.jkiss.dbeaver.model.data.DBDAttributeBinding; import org.jkiss.dbeaver.model.data.DBDDisplayFormat; import org.jkiss.dbeaver.model.data.DBDValueDefaultGenerator; import org.jkiss.dbeaver.model.data.DBDValueHandler; +import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose; +import org.jkiss.dbeaver.model.exec.DBCSession; import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; +import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.tools.transfer.IDataTransferProducer; import org.jkiss.dbeaver.tools.transfer.database.DatabaseTransferProducer; @@ -251,8 +254,10 @@ public class ResultSetHandlerMain extends AbstractHandler { } else if (actionId.equals(CMD_CELL_SET_DEFAULT)) { DBDValueHandler valueHandler = valueController.getValueHandler(); if (valueHandler instanceof DBDValueDefaultGenerator) { - Object defValue = ((DBDValueDefaultGenerator) valueHandler).generateDefaultValue(valueController.getValueType()); - valueController.updateValue(defValue, false); + try (DBCSession session = rsv.getExecutionContext().openSession(new VoidProgressMonitor(), DBCExecutionPurpose.UTIL, "Generate default value")) { + Object defValue = ((DBDValueDefaultGenerator) valueHandler).generateDefaultValue(session, valueController.getValueType()); + valueController.updateValue(defValue, false); + } } } else { rsv.getModel().resetCellValue(attr, row); -- GitLab