Revision: 6293
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6293&view=rev
Author: gerdwagner
Date: 2011-06-05 17:39:52 +0000 (Sun, 05 Jun 2011)
Log Message:
-----------
Greenplum plugin, Adam Winn's patch ID 3217167
Modified Paths:
--------------
trunk/sql12/doc/src/main/resources/changes.txt
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactory.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactoryImpl.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/IDialectFactory.java
Added Paths:
-----------
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/GreenplumDialectExt.java
trunk/sql12/plugins/greenplum/
trunk/sql12/plugins/greenplum/src/
trunk/sql12/plugins/greenplum/src/main/
trunk/sql12/plugins/greenplum/src/main/java/
trunk/sql12/plugins/greenplum/src/main/java/net/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/GreenplumPlugin.java
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/exp/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/exp/GreenplumExtTableInodeExpanderFactory.java
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/exp/GreenplumExtTableParentExpander.java
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/tab/
trunk/sql12/plugins/greenplum/src/main/java/net/sourceforge/squirrel_sql/plugins/greenplum/tab/GreenplumExternalTableDetailsTab.java
trunk/sql12/plugins/greenplum/src/main/resources/
trunk/sql12/plugins/greenplum/src/main/resources/doc/
trunk/sql12/plugins/greenplum/src/main/resources/doc/changes.txt
trunk/sql12/plugins/greenplum/src/main/resources/doc/licence.txt
trunk/sql12/plugins/greenplum/src/main/resources/net/
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/squirrel_sql/plugins/greenplum/
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/squirrel_sql/plugins/greenplum/I18NStrings.properties
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/squirrel_sql/plugins/greenplum/tab/
trunk/sql12/plugins/greenplum/src/main/resources/net/sourceforge/squirrel_sql/plugins/greenplum/tab/I18NStrings.properties
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2011-06-05 13:28:35 UTC (rev 6292)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2011-06-05 17:39:52 UTC (rev 6293)
@@ -7,6 +7,10 @@
Enhancements:
+New Plugin: Greenplum DB Plugin
+ New Plugin for the Greenplum DB. Thanks to Adam Winn for the patch (Patch ID 3217167)
+
+
Feature Request 1744964: Copy text from the SQL editor panel as rich text.
This functionality is available via the pop-up menu and the tools pop-up. To use this, the RSyntax editor (Syntax Plugin) must be activated.
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactory.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactory.java 2011-06-05 13:28:35 UTC (rev 6292)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactory.java 2011-06-05 17:39:52 UTC (rev 6293)
@@ -93,6 +93,8 @@
private static final NetezzaDialextExt netezzaDialect = new NetezzaDialextExt();
+ private static final GreenplumDialectExt greenplumDialect = new GreenplumDialectExt();
+
private static final OracleDialectExt oracle9iDialect = new OracleDialectExt();
private static final PointbaseDialectExt pointbaseDialect = new PointbaseDialectExt();
@@ -150,6 +152,7 @@
dbNameDialectMap.put(mckoiDialect.getDisplayName(), mckoiDialect);
dbNameDialectMap.put(mysqlDialect.getDisplayName(), mysqlDialect);
dbNameDialectMap.put(netezzaDialect.getDisplayName(), netezzaDialect);
+ dbNameDialectMap.put(greenplumDialect.getDisplayName(), greenplumDialect);
dbNameDialectMap.put(oracle9iDialect.getDisplayName(), oracle9iDialect);
dbNameDialectMap.put(pointbaseDialect.getDisplayName(), pointbaseDialect);
dbNameDialectMap.put(postgreSQLDialect.getDisplayName(), postgreSQLDialect);
@@ -250,6 +253,11 @@
return dialectSupportsProduct(md, netezzaDialect);
}
+ public static boolean isGreenplum(ISQLDatabaseMetaData md)
+ {
+ return dialectSupportsProduct(md, greenplumDialect);
+ }
+
public static boolean isOracle(ISQLDatabaseMetaData md)
{
return dialectSupportsProduct(md, oracle9iDialect);
@@ -374,6 +382,7 @@
if (isMySQL5(md)) { return mysql5Dialect; }
if (isMSSQLServer(md)) { return sqlserverDialect; }
if (isNetezza(md)) { return netezzaDialect; }
+ if (isGreenplum(md)) { return greenplumDialect; }
if (isOracle(md)) { return oracle9iDialect; }
if (isPointbase(md)) { return pointbaseDialect; }
if (isPostgreSQL(md)) { return postgreSQLDialect; }
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactoryImpl.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactoryImpl.java 2011-06-05 13:28:35 UTC (rev 6292)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/DialectFactoryImpl.java 2011-06-05 17:39:52 UTC (rev 6293)
@@ -207,6 +207,15 @@
/**
* @see net.sourceforge.squirrel_sql.fw.dialects.IDialectFactory#
+ * isGreenplum(net.sourceforge.squirrel_sql.fw.sql.ISQLDatabaseMetaData)
+ */
+ public boolean isGreenplum(ISQLDatabaseMetaData md)
+ {
+ return DialectFactory.isGreenplum(md);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.IDialectFactory#
* isOracle(net.sourceforge.squirrel_sql.fw.sql.ISQLDatabaseMetaData)
*/
public boolean isOracle(ISQLDatabaseMetaData md)
Added: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/GreenplumDialectExt.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/GreenplumDialectExt.java (rev 0)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/dialects/GreenplumDialectExt.java 2011-06-05 17:39:52 UTC (rev 6293)
@@ -0,0 +1,767 @@
+/*
+ * Copyright (C) 2011 Adam Winn
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+package net.sourceforge.squirrel_sql.fw.dialects;
+
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.ADD_COLUMN_TYPE;
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.COLUMN_DROP_TYPE;
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.COLUMN_NULL_ALTER_TYPE;
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.COLUMN_TYPE_ALTER_TYPE;
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.CREATE_INDEX_TYPE;
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.DROP_INDEX_TYPE;
+import static net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.getUnsupportedMessage;
+
+import java.sql.Types;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+
+import net.sourceforge.squirrel_sql.fw.sql.ITableInfo;
+import net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo;
+
+import org.antlr.stringtemplate.StringTemplate;
+import org.hibernate.HibernateException;
+
+/**
+ * Dialect for the Greenplum NPS database server.
+ */
+public class GreenplumDialectExt extends CommonHibernateDialect
+{
+
+ // Note that Greenplum 4.6 doesn't have support for LOB data types. Under the hood, it appears to use
+ // PostgreSQL, but with some limitations.
+ private class GreenplumDialectHelper extends org.hibernate.dialect.PostgreSQLDialect
+ {
+ public GreenplumDialectHelper()
+ {
+ super();
+ registerColumnType(Types.BIGINT, "bigint");
+ registerColumnType(Types.BIT, "bool");
+ registerColumnType(Types.BOOLEAN, "bool");
+ registerColumnType(Types.CHAR, 64000, "char($l)");
+ registerColumnType(Types.CHAR, "char(64000)");
+ // Greenplum 4.6 doesn't support text or any large character object data type
+ // registerColumnType(Types.CLOB, "text");
+ registerColumnType(Types.DATE, "date");
+ registerColumnType(Types.DECIMAL, "decimal($p,2)");
+ registerColumnType(Types.DOUBLE, "double precision");
+ registerColumnType(Types.FLOAT, 15, "float($p)");
+ registerColumnType(Types.FLOAT, "float(15)");
+ registerColumnType(Types.INTEGER, "int");
+ // Greenplum 4.6 doesn't appear to support bytea or any binary type.
+ // registerColumnType(Types.LONGVARBINARY, "bytea");
+ registerColumnType(Types.LONGVARCHAR, "char(64000)");
+ registerColumnType(Types.NUMERIC, "numeric($p,$s)");
+ registerColumnType(Types.REAL, "real");
+ registerColumnType(Types.SMALLINT, "smallint");
+ registerColumnType(Types.TIME, "time");
+ registerColumnType(Types.TIMESTAMP, "timestamp");
+ registerColumnType(Types.TINYINT, "byteint");
+ // Greenplum 4.6 doesn't appear to support bytea or any binary type.
+ // registerColumnType(Types.VARBINARY, "bytea");
+ registerColumnType(Types.VARCHAR, 64000, "varchar($l)");
+ registerColumnType(Types.VARCHAR, "varchar(64000)");
+ }
+ }
+
+ /** extended hibernate dialect used in this wrapper */
+ private GreenplumDialectHelper _dialect = new GreenplumDialectHelper();
+
+ private String cascadeClause;
+
+ @Override
+ public DialectType getDialectType()
+ {
+ return DialectType.NETEZZA;
+ }
+
+ @Override
+ public String getDisplayName()
+ {
+ return "Greenplum";
+ }
+
+ @Override
+ public String getDropSequenceSQL(String sequenceName, boolean cascade, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ // "DROP SEQUENCE $sequenceName$ $cascade$";
+ StringTemplate st = new StringTemplate(ST_DROP_SEQUENCE_STYLE_ONE);
+
+ HashMap<String, String> valuesMap = DialectUtils.getValuesMap(ST_SEQUENCE_NAME_KEY, sequenceName);
+
+ return DialectUtils.bindTemplateAttributes(this, st, valuesMap, qualifier, prefs);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getMaxPrecision(int)
+ */
+ @Override
+ public int getMaxPrecision(int dataType)
+ {
+ return 38;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getMaxScale(int)
+ */
+ @Override
+ public int getMaxScale(int dataType)
+ {
+ // user guide says scale can be 0 to as large as the precision. It cannot be
+ // greater than the precision.
+ return 38;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getPrecisionDigits(int, int)
+ */
+ @Override
+ public int getPrecisionDigits(int columnSize, int dataType)
+ {
+ // Greenplum correctly reports the size of the column in digits.
+ return columnSize;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getTypeName(int, int, int, int)
+ */
+ @Override
+ public String getTypeName(int code, int length, int precision, int scale) throws HibernateException
+ {
+ return _dialect.getTypeName(code, length, precision, scale);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAccessMethods()
+ */
+ @Override
+ public boolean supportsAccessMethods()
+ {
+ // Access methods have to do with indexes. Since Greenplum disallows users from creating or changing
+ // indexes, this is unsupported
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAddColumn()
+ */
+ @Override
+ public boolean supportsAddColumn()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAddForeignKeyConstraint()
+ */
+ @Override
+ public boolean supportsAddForeignKeyConstraint()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAddUniqueConstraint()
+ */
+ @Override
+ public boolean supportsAddUniqueConstraint()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAlterColumnDefault()
+ */
+ @Override
+ public boolean supportsAlterColumnDefault()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAlterColumnNull()
+ */
+ @Override
+ public boolean supportsAlterColumnNull()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAlterColumnType()
+ */
+ @Override
+ public boolean supportsAlterColumnType()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAlterSequence()
+ */
+ @Override
+ public boolean supportsAlterSequence()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsAutoIncrement()
+ */
+ @Override
+ public boolean supportsAutoIncrement()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsCheckOptionsForViews()
+ */
+ @Override
+ public boolean supportsCheckOptionsForViews()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsColumnComment()
+ */
+ @Override
+ public boolean supportsColumnComment()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsCorrelatedSubQuery()
+ */
+ @Override
+ public boolean supportsCorrelatedSubQuery()
+ {
+ // Although Greenplum claims to support correlated sub-queries, the type of sub-query we want is not
+ // supported:
+ // update TOTABLE t set t.MYDESC =
+ // (
+ // select
+ // f.MYDESC
+ // from FROMTABLE f
+ // where f.myid = t.myid
+ // )
+ // Furthermore, the only refactoring that currently uses this is MergeTable which also requires
+ // add column support, which Greenplum also doesn't seem to have.
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsCreateIndex()
+ */
+ @Override
+ public boolean supportsCreateIndex()
+ {
+ // Since Greenplum disallows users from creating or changing indexes, this is unsupported
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsCreateSequence()
+ */
+ @Override
+ public boolean supportsCreateSequence()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsCreateTable()
+ */
+ @Override
+ public boolean supportsCreateTable()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsCreateView()
+ */
+ @Override
+ public boolean supportsCreateView()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsDropColumn()
+ */
+ @Override
+ public boolean supportsDropColumn()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsDropConstraint()
+ */
+ @Override
+ public boolean supportsDropConstraint()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsDropIndex()
+ */
+ @Override
+ public boolean supportsDropIndex()
+ {
+ // Since Greenplum disallows users from creating or changing indexes, this is unsupported
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsDropSequence()
+ */
+ @Override
+ public boolean supportsDropSequence()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsDropView()
+ */
+ @Override
+ public boolean supportsDropView()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsEmptyTables()
+ */
+ @Override
+ public boolean supportsEmptyTables()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsIndexes()
+ */
+ @Override
+ public boolean supportsIndexes()
+ {
+ // Since Greenplum disallows users from creating or changing indexes, this is unsupported
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsInsertInto()
+ */
+ @Override
+ public boolean supportsInsertInto()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsMultipleRowInserts()
+ */
+ @Override
+ public boolean supportsMultipleRowInserts()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsProduct(java.lang.String,
+ * java.lang.String)
+ */
+ @Override
+ public boolean supportsProduct(String databaseProductName, String databaseProductVersion)
+ {
+ if (databaseProductName == null) { return false; }
+ if (databaseProductName.trim().startsWith("PostgreSQL"))
+ {
+ // We don't yet have the need to discriminate by version.
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsRenameColumn()
+ */
+ @Override
+ public boolean supportsRenameColumn()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsRenameTable()
+ */
+ @Override
+ public boolean supportsRenameTable()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsRenameView()
+ */
+ @Override
+ public boolean supportsRenameView()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsSchemasInTableDefinition()
+ */
+ @Override
+ public boolean supportsSchemasInTableDefinition()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsSequence()
+ */
+ @Override
+ public boolean supportsSequence()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsSequenceInformation()
+ */
+ @Override
+ public boolean supportsSequenceInformation()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsTablespace()
+ */
+ @Override
+ public boolean supportsTablespace()
+ {
+ return false;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsUpdate()
+ */
+ @Override
+ public boolean supportsUpdate()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#supportsViewDefinition()
+ */
+ @Override
+ public boolean supportsViewDefinition()
+ {
+ return true;
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getTableDropSQL(net.sourceforge.squirrel_sql.fw.sql.ITableInfo,
+ * boolean, boolean, net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public List<String> getTableDropSQL(ITableInfo tableInfo, boolean cascadeConstraints,
+ boolean isMaterializedView, DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs)
+ {
+ final boolean supportsCascade = false;
+ final boolean supportsMatViews = true;
+ return DialectUtils.getTableDropSQL(tableInfo, supportsCascade, cascadeConstraints, supportsMatViews,
+ cascadeClause, isMaterializedView, qualifier, prefs, this);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getColumnDropSQL(java.lang.String,
+ * java.lang.String, net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getColumnDropSQL(String tableName, String columnName, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs) throws UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException(getUnsupportedMessage(this, COLUMN_DROP_TYPE));
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getCreateIndexSQL(java.lang.String,
+ * java.lang.String, java.lang.String, java.lang.String[], boolean, java.lang.String,
+ * java.lang.String, net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getCreateIndexSQL(String indexName, String tableName, String accessMethod, String[] columns,
+ boolean unique, String tablespace, String constraints, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ throw new UnsupportedOperationException(getUnsupportedMessage(this, CREATE_INDEX_TYPE));
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getDropIndexSQL(java.lang.String,
+ * java.lang.String, boolean, net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getDropIndexSQL(String tableName, String indexName, boolean cascade,
+ DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs)
+ {
+ throw new UnsupportedOperationException(getUnsupportedMessage(this, DROP_INDEX_TYPE));
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getAddColumnSQL(net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String[] getAddColumnSQL(TableColumnInfo column, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ throw new UnsupportedOperationException(getUnsupportedMessage(this, ADD_COLUMN_TYPE));
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getColumnNullableAlterSQL(net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String[] getColumnNullableAlterSQL(TableColumnInfo info, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ throw new UnsupportedOperationException(getUnsupportedMessage(this, COLUMN_NULL_ALTER_TYPE));
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getColumnTypeAlterSQL(net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public List<String> getColumnTypeAlterSQL(TableColumnInfo from, TableColumnInfo to,
+ DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs) throws UnsupportedOperationException
+ {
+ throw new UnsupportedOperationException(getUnsupportedMessage(this, COLUMN_TYPE_ALTER_TYPE));
+
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getColumnDefaultAlterSQL(net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getColumnDefaultAlterSQL(TableColumnInfo info, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ String alterClause = DialectUtils.ALTER_COLUMN_CLAUSE;
+ boolean specifyType = false;
+ String defaultClause = DialectUtils.SET_DEFAULT_CLAUSE;
+ return DialectUtils.getColumnDefaultAlterSQL(this, info, alterClause, specifyType, defaultClause,
+ qualifier, prefs);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getColumnNameAlterSQL(net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getColumnNameAlterSQL(TableColumnInfo from, TableColumnInfo to,
+ DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs)
+ {
+ String alterClause = DialectUtils.RENAME_COLUMN_CLAUSE;
+ String renameToClause = DialectUtils.TO_CLAUSE;
+ return DialectUtils.getColumnNameAlterSQL(from, to, alterClause, renameToClause, qualifier, prefs, this);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getRenameTableSQL(java.lang.String,
+ * java.lang.String, net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getRenameTableSQL(String oldTableName, String newTableName,
+ DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs)
+ {
+ return DialectUtils.getRenameTableSQL(oldTableName, newTableName, qualifier, prefs, this);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getCreateViewSQL(java.lang.String,
+ * java.lang.String, java.lang.String,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getCreateViewSQL(String viewName, String definition, String checkOption,
+ DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs)
+ {
+ return DialectUtils.getCreateViewSQL(viewName, definition, checkOption, qualifier, prefs, this);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getRenameViewSQL(java.lang.String,
+ * java.lang.String, net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String[] getRenameViewSQL(String oldViewName, String newViewName,
+ DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs)
+ {
+
+ String commandPrefix = DialectUtils.ALTER_VIEW_CLAUSE;
+ String renameClause = DialectUtils.RENAME_TO_CLAUSE;
+ return new String[] { DialectUtils.getRenameViewSQL(commandPrefix, renameClause, oldViewName,
+ newViewName, qualifier, prefs, this) };
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getViewDefinitionSQL(java.lang.String,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getViewDefinitionSQL(String viewName, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ return "SELECT 'create or replace view ' || v.VIEWNAME || ' as ' || "
+ + "v.definition FROM _v_view v, _v_objs_owned o " + "where v.objid = o.objid "
+ + "and o.DATABASE = '" + qualifier.getCatalog() + "' " + "and v.VIEWNAME = '" + viewName + "'";
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getCreateSequenceSQL(java.lang.String,
+ * java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier,
+ * net.sourceforge.squirrel_sql.fw.dialects.SqlGenerationPreferences)
+ */
+ @Override
+ public String getCreateSequenceSQL(String sequenceName, String increment, String minimum, String maximum,
+ String start, String cache, boolean cycle, DatabaseObjectQualifier qualifier,
+ SqlGenerationPreferences prefs)
+ {
+ final String minimumClause = DialectUtils.MINVALUE_CLAUSE;
+ final String maximumClause = DialectUtils.MAXVALUE_CLAUSE;
+
+ String cycleClause = DialectUtils.CYCLE_CLAUSE;
+ if (!cycle)
+ {
+ cycleClause = DialectUtils.NO_CYCLE_CLAUSE;
+ }
+
+ return DialectUtils.getCreateSequenceSQL(sequenceName, increment, minimumClause, minimum,
+ maximumClause, maximum, start, cache, cycleClause, qualifier, prefs, this);
+ }
+
+ /**
+ * @see net.sourceforge.squirrel_sql.fw.dialects.CommonHibernateDialect#getAlterSequenceSQL(java.lang.String,
+ * java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean,
+ * net.sourceforge.squirrel_sql.fw.dialects.DatabaseObjectQualifier...
[truncated message content] |