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

#3175 Greenplum driver. Procedures source reading for Greenplum fix.

上级 4f17d258
......@@ -222,6 +222,24 @@
<property name="loginTimeout" value="20"/>
<property name="connectTimeout" value="20"/>
</driver>
<driver
id="postgres-greenplum-jdbc"
label="Greenplum"
icon="icons/greenplum_icon.png"
class="org.postgresql.Driver"
sampleURL="jdbc:postgresql://{host}[:{port}]/[{database}]"
defaultPort="5432"
webURL="http://jdbc.postgresql.org/"
description="%driver.postgresql.description">
<file type="jar" path="maven:/org.postgresql:postgresql:RELEASE[42.2.0.jre7]" bundle="!drivers.postgresql"/>
<file type="license" path="drivers/postgresql/LICENSE.txt" bundle="drivers.postgresql"/>
<file type="jar" path="drivers/postgresql/postgresql.jar" bundle="drivers.postgresql"/>
<parameter name="greenplum" value="true"/>
<property name="loginTimeout" value="20"/>
<property name="connectTimeout" value="20"/>
</driver>
</drivers>
<views>
......
......@@ -45,6 +45,7 @@ public class PostgreConstants {
public static final String PROP_SSL_ROOT_CERT = "rootCert";
public static final String PROP_SSL_MODE = "sslMode";
public static final String PROP_SSL_FACTORY = "sslFactory";
public static final String PROP_GREENPLUM_DRIVER = "greenplum";
public static final String OPTION_DDL_SHOW_PERMISSIONS = "pg.ddl.show.permissions";
public static final String OPTION_DDL_SHOW_COLUMN_COMMENTS = "pg.ddl.show.column.comments";
......
......@@ -28,6 +28,7 @@ import org.jkiss.dbeaver.model.DBPDataKind;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
......@@ -36,6 +37,7 @@ import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import org.jkiss.utils.CommonUtils;
import java.io.IOException;
import java.io.StringReader;
......@@ -438,4 +440,9 @@ public class PostgreUtils {
return createSQL + view.getViewType() + " " + view.getFullyQualifiedName(DBPEvaluationContext.DDL) + " AS\n" + definition;
}
public static boolean isGreenplumDriver(DBPDriver driver) {
return driver != null && CommonUtils.toBoolean(
driver.getDriverParameter(PostgreConstants.PROP_GREENPLUM_DRIVER));
}
}
......@@ -474,6 +474,10 @@ public class PostgreDataSource extends JDBCDataSource implements DBSObjectSelect
}
}
boolean isGreenplum() {
return PostgreUtils.isGreenplumDriver(getContainer().getDriver());
}
class DatabaseCache extends JDBCObjectLookupCache<PostgreDataSource, PostgreDatabase>
{
@Override
......
......@@ -20,7 +20,6 @@ import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.PostgreUtils;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
......@@ -256,7 +255,7 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
@Property(hidden = true, editable = true, updatable = true, order = -1)
public String getObjectDefinitionText(DBRProgressMonitor monitor, Map<String, Object> options) throws DBException
{
if (CommonUtils.getOption(options, OPTION_DEBUGGER_SOURCE)) {
if (getDataSource().isGreenplum() || CommonUtils.getOption(options, OPTION_DEBUGGER_SOURCE)) {
if (procSrc == null) {
try (JDBCSession session = DBUtils.openMetaSession(monitor, getDataSource(), "Read procedure body")) {
procSrc = JDBCUtils.queryString(session, "SELECT prosrc FROM pg_proc where oid = ?", getObjectId());
......
......@@ -29,6 +29,7 @@ import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.ext.postgresql.PostgreActivator;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.PostgreMessages;
import org.jkiss.dbeaver.ext.postgresql.PostgreUtils;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.ui.ICompositeDialogPage;
......@@ -55,7 +56,8 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
private Button switchDatabaseOnExpand;
private boolean activated = false;
private static ImageDescriptor LOGO_IMG = PostgreActivator.getImageDescriptor("icons/postgresql_logo.png");
private static ImageDescriptor PG_LOGO_IMG = PostgreActivator.getImageDescriptor("icons/postgresql_logo.png");
private static ImageDescriptor GP_LOGO_IMG = PostgreActivator.getImageDescriptor("icons/greenplum_logo.png");
@Override
......@@ -181,7 +183,8 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo
super.loadSettings();
if (!activated) {
setImageDescriptor(LOGO_IMG);
setImageDescriptor(
PostgreUtils.isGreenplumDriver(getSite().getDriver()) ? GP_LOGO_IMG : PG_LOGO_IMG);
}
// Load values from new connection info
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册