From 3b7c990544aac095e4022a29506b729553479387 Mon Sep 17 00:00:00 2001 From: liuyuanyuan Date: Thu, 10 May 2018 16:29:50 +0800 Subject: [PATCH] Add comment for sequence, comment and grant for view into DDL. --- .../ext/postgresql/model/PostgreSequence.java | 6 ++++++ .../ext/postgresql/model/PostgreViewBase.java | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreSequence.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreSequence.java index 9831198ab9..d1b4dda1b3 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreSequence.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreSequence.java @@ -38,6 +38,7 @@ import org.jkiss.dbeaver.model.sql.SQLUtils; import org.jkiss.dbeaver.model.struct.DBSEntityType; import org.jkiss.dbeaver.model.struct.rdb.DBSSequence; import org.jkiss.dbeaver.model.struct.rdb.DBSTableIndex; +import org.jkiss.utils.CommonUtils; import java.util.ArrayList; import java.util.Collection; @@ -214,6 +215,11 @@ public class PostgreSequence extends PostgreTableBase implements DBSSequence, DB sql.append("\n\tSTART ").append(info.getLastValue()); } + if (!CommonUtils.isEmpty(getDescription())) { + sql.append("\nCOMMENT ON SEQUENCE ").append(DBUtils.getQuotedIdentifier(this)).append(" IS ") + .append(SQLUtils.quoteString(this, getDescription())).append(";"); + } + List actions = new ArrayList<>(); PostgreUtils.getObjectGrantPermissionActions(monitor, this, actions, options); if (!actions.isEmpty()) { diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreViewBase.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreViewBase.java index 91737a4bec..dec7a8c327 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreViewBase.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreViewBase.java @@ -20,16 +20,21 @@ import org.jkiss.code.NotNull; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.ext.postgresql.PostgreUtils; import org.jkiss.dbeaver.model.DBUtils; +import org.jkiss.dbeaver.model.edit.DBEPersistAction; import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession; import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer; import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils; import org.jkiss.dbeaver.model.meta.Property; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; +import org.jkiss.dbeaver.model.sql.SQLUtils; import org.jkiss.dbeaver.model.struct.rdb.DBSTableIndex; +import org.jkiss.utils.CommonUtils; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -84,6 +89,20 @@ public abstract class PostgreViewBase extends PostgreTableReal try (JDBCSession session = DBUtils.openMetaSession(monitor, getDataSource(), "Read view definition")) { String definition = JDBCUtils.queryString(session, "SELECT pg_get_viewdef(?, true)", getObjectId()); this.source = PostgreUtils.getViewDDL(this, definition); + + // comment + if (!CommonUtils.isEmpty(getDescription())) { + this.source += "\nCOMMENT ON " + getViewType() + " " + DBUtils.getQuotedIdentifier(this) + + " IS " + SQLUtils.quoteString(this, getDescription()) + ";"; + } + // acl privilege + List actions = new ArrayList<>(); + PostgreUtils.getObjectGrantPermissionActions(monitor, this, actions, options); + if (!actions.isEmpty()) { + this.source += "\n\n" + SQLUtils.generateScript(getDataSource(), + actions.toArray(new DBEPersistAction[actions.size()]), false); + } + String extDefinition = readExtraDefinition(session, options); if (extDefinition != null) { this.source += "\n" + extDefinition; -- GitLab