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 34a7a9c7402bf1ceb60278cc45139543f4254e6e..6f767d7819963b9c1451f75ba009463c91168878 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 03d24fb89df3be37f250c4264d87b40f0fe5490f..c1f1c566ed9ba20eaac72b52712d2b410ef5f1b0 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 fdb8500b47c8221c97e7124abd9d1723efde2aee..7574adcb381ec9379442f2e3c883122ac503f9da 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 f49c3e4f02561342ee46603b5cd47f9ab570bd7c..ad976cf282325c2c4131150f997d301514da2bf6 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 c9b4a9064eff4e1fe59b85f182b0e9d39c405b4c..55c0700039d44dcb01b38e0710b28d66c01be75c 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 1745fc9771db22b0a271dc54606fbbe052d7d262..7bda83902286a33fef3d60479cc7ccf22efbb69e 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);