mondrian.spi.impl
Class VectorwiseDialect

java.lang.Object
  extended by mondrian.spi.impl.JdbcDialectImpl
      extended by mondrian.spi.impl.IngresDialect
          extended by mondrian.spi.impl.VectorwiseDialect
All Implemented Interfaces:
Dialect

public class VectorwiseDialect
extends IngresDialect

Implementation of Dialect for the Vertica database.

Since:
Sept 11, 2009
Author:
LBoudreau

Nested Class Summary
 
Nested classes/interfaces inherited from interface mondrian.spi.Dialect
Dialect.DatabaseProduct, Dialect.Datatype
 
Field Summary
static JdbcDialectFactory FACTORY
           
 
Fields inherited from class mondrian.spi.impl.JdbcDialectImpl
databaseProduct, permitsSelectNotInGroupBy, productVersion
 
Constructor Summary
VectorwiseDialect(Connection connection)
          Creates a VectorwiseDialect.
 
Method Summary
 Dialect.DatabaseProduct getDatabaseProduct()
          Returns the database for this Dialect, or Dialect.DatabaseProduct.UNKNOWN if the database is not a common database.
 boolean requiresAliasForFromQuery()
          Returns whether this Dialect requires subqueries in the FROM clause to have an alias.
 boolean requiresHavingAlias()
          Returns true if this Dialect can include expressions in the HAVING clause only by adding an expression to the SELECT clause and using its alias.
 boolean supportsResultSetConcurrency(int type, int concurrency)
          Returns whether this Dialect supports the given concurrency type in combination with the given result set type.
 
Methods inherited from class mondrian.spi.impl.IngresDialect
generateInline, requiresOrderByAlias
 
Methods inherited from class mondrian.spi.impl.JdbcDialectImpl
allowsAs, allowsCompoundCountDistinct, allowsCountDistinct, allowsDdl, allowsDialectSharing, allowsFromQuery, allowsJoinOn, allowsMultipleCountDistinct, allowsMultipleDistinctSqlMeasures, allowsOrderByAlias, allowsRegularExpressionInWhereClause, allowsSelectNotInGroupBy, appendHintsAfterFromClause, caseWhenElse, deduceIdentifierQuoteString, deduceMaxColumnNameLength, deduceProductName, deduceProductVersion, deduceReadOnly, deduceSupportedResultSetStyles, deduceSupportsSelectNotInGroupBy, generateCountExpression, generateInlineForAnsi, generateInlineGeneric, generateOrderByNulls, generateOrderByNullsAnsi, generateOrderItem, generateOrderItem, generateRegularExpression, getMaxColumnNameLength, getProduct, getQuoteIdentifierString, needsExponent, quote, quoteBooleanLiteral, quoteDateLiteral, quoteDateLiteral, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteNumericLiteral, quoteStringLiteral, quoteTimeLiteral, quoteTimestampLiteral, requiresGroupByAlias, requiresUnionOrderByExprToBeInSelectClause, requiresUnionOrderByOrdinal, supportsGroupByExpressions, supportsGroupingSets, supportsMultiValueInExpr, supportsUnlimitedValueList, toString, toUpper
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FACTORY

public static final JdbcDialectFactory FACTORY
Constructor Detail

VectorwiseDialect

public VectorwiseDialect(Connection connection)
                  throws SQLException
Creates a VectorwiseDialect.

Parameters:
connection - Connection
Throws:
SQLException
Method Detail

getDatabaseProduct

public Dialect.DatabaseProduct getDatabaseProduct()
Description copied from interface: Dialect
Returns the database for this Dialect, or Dialect.DatabaseProduct.UNKNOWN if the database is not a common database.

Specified by:
getDatabaseProduct in interface Dialect
Overrides:
getDatabaseProduct in class JdbcDialectImpl
Returns:
Database

supportsResultSetConcurrency

public boolean supportsResultSetConcurrency(int type,
                                            int concurrency)
Description copied from interface: Dialect
Returns whether this Dialect supports the given concurrency type in combination with the given result set type.

The result is similar to DatabaseMetaData.supportsResultSetConcurrency(int, int), except that the JdbcOdbc bridge in JDK 1.6 overstates its abilities. See bug 1690406.

Specified by:
supportsResultSetConcurrency in interface Dialect
Overrides:
supportsResultSetConcurrency in class JdbcDialectImpl
Parameters:
type - defined in ResultSet
concurrency - type defined in ResultSet
Returns:
true if so; false otherwise

requiresHavingAlias

public boolean requiresHavingAlias()
Description copied from interface: Dialect
Returns true if this Dialect can include expressions in the HAVING clause only by adding an expression to the SELECT clause and using its alias.

For example, in such a dialect,

SELECT CONCAT(x) as foo FROM t HAVING CONCAT(x) LIKE "%"
would be illegal, but
SELECT CONCAT(x) as foo FROM t HAVING foo LIKE "%"
would be legal.

MySQL is an example of such dialects.

Specified by:
requiresHavingAlias in interface Dialect
Overrides:
requiresHavingAlias in class JdbcDialectImpl
Returns:
Whether this Dialect can include expressions in the HAVING clause only by adding an expression to the SELECT clause and using its alias

requiresAliasForFromQuery

public boolean requiresAliasForFromQuery()
Description copied from interface: Dialect
Returns whether this Dialect requires subqueries in the FROM clause to have an alias.

Specified by:
requiresAliasForFromQuery in interface Dialect
Overrides:
requiresAliasForFromQuery in class JdbcDialectImpl
Returns:
whether dialewct requires subqueries to have an alias
See Also:
Dialect.allowsFromQuery()

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads