org.pentaho.di.core.database
Class VerticaDatabaseMeta

java.lang.Object
  extended by org.pentaho.di.core.database.BaseDatabaseMeta
      extended by org.pentaho.di.core.database.VerticaDatabaseMeta
All Implemented Interfaces:
Cloneable, DatabaseInterface
Direct Known Subclasses:
Vertica5DatabaseMeta

public class VerticaDatabaseMeta
extends BaseDatabaseMeta
implements DatabaseInterface

Contains Vertica Analytic Database information through static final members

Since:
2009-03-16, May-2008
Author:
DEinspanjer, Matt

Field Summary
 
Fields inherited from class org.pentaho.di.core.database.BaseDatabaseMeta
ATTRIBUTE_CLUSTER_DBNAME_PREFIX, ATTRIBUTE_CLUSTER_HOSTNAME_PREFIX, ATTRIBUTE_CLUSTER_PASSWORD_PREFIX, ATTRIBUTE_CLUSTER_PORT_PREFIX, ATTRIBUTE_CLUSTER_USERNAME_PREFIX, ATTRIBUTE_FORCE_IDENTIFIERS_TO_LOWERCASE, ATTRIBUTE_FORCE_IDENTIFIERS_TO_UPPERCASE, ATTRIBUTE_INITIAL_POOL_SIZE, ATTRIBUTE_IS_CLUSTERED, ATTRIBUTE_MAXIMUM_POOL_SIZE, ATTRIBUTE_MSSQL_DOUBLE_DECIMAL_SEPARATOR, ATTRIBUTE_POOLING_PARAMETER_PREFIX, ATTRIBUTE_PORT_NUMBER, ATTRIBUTE_PREFERRED_SCHEMA_NAME, ATTRIBUTE_PREFIX_EXTRA_OPTION, ATTRIBUTE_QUOTE_ALL_FIELDS, ATTRIBUTE_SQL_CONNECT, ATTRIBUTE_SUPPORTS_BOOLEAN_DATA_TYPE, ATTRIBUTE_USE_POOLING, ATTRIBUTE_USE_RESULT_STREAMING, AUTOINCREMENT_SQL_FOR_BATCH_ID, poolingParameters, SELECT_COUNT_STATEMENT, SEQUENCE_FOR_BATCH_ID
 
Constructor Summary
VerticaDatabaseMeta()
           
 
Method Summary
 int[] getAccessTypeList()
          Get the list of possible access types for a database.
 String getAddColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean use_autoinc, String pk, boolean semicolon)
          Generates the SQL statement to add a column to the specified table For this generic type, i set it to the most common possibility.
 int getDefaultDatabasePort()
           
 String getDriverClass()
          Obtain the name of the JDBC driver class that we need to use!
 String getExtraOptionIndicator()
           
 String getExtraOptionSeparator()
           
 String getFieldDefinition(ValueMetaInterface v, String tk, String pk, boolean use_autoinc, boolean add_fieldname, boolean add_cr)
          Describe a Value as a field in the database.
 String getLimitClause(int nrRows)
           
 int getMaxTextFieldLength()
          Get the maximum length of a text field for this database connection.
 int getMaxVARCHARLength()
          Get the maximum length of a text field (VARCHAR) for this database connection.
 String getModifyColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean use_autoinc, String pk, boolean semicolon)
          Generates the SQL statement to modify a column in the specified table
 String[] getReservedWords()
           
 String getSQLColumnExists(String columnname, String tablename)
           
 String getSQLCurrentSequenceValue(String sequenceName)
          Get the SQL to get the next value of a sequence.
 String getSQLNextSequenceValue(String sequenceName)
          Get the SQL to get the next value of a sequence.
 String getSQLQueryFields(String tableName)
          Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database table
 String getSQLTableExists(String tablename)
           
 String getURL(String hostname, String port, String databaseName)
           
 String[] getUsedLibraries()
           
 String[] getViewTypes()
           
 boolean isFetchSizeSupported()
          Checks whether or not the command setFetchSize() is supported by the JDBC driver...
 boolean requiresCastToVariousForIsNull()
           
 boolean supportsAutoInc()
           
 boolean supportsBitmapIndex()
           
 boolean supportsBooleanDataType()
           
 boolean supportsRepository()
           
 boolean supportsSequences()
           
 boolean supportsTimeStampToDateConversion()
           
 
Methods inherited from class org.pentaho.di.core.database.BaseDatabaseMeta
addExtraOption, checkIndexExists, clone, generateColumnAlias, getAccessType, getAttributes, getBackwardsCompatibleSchemaTableCombination, getBackwardsCompatibleTable, getConnectionPoolingProperties, getConnectSQL, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDropColumnStatement, getEndQuote, getExtraOptions, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getMaxColumnsInIndex, getMaximumPoolSize, getName, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSchemaTableCombination, getSelectCountStatement, getServername, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLSequenceExists, getSQLUnlockTables, getStartQuote, getSynonymTypes, getTablespaceDDL, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, parseStatements, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCreateTablePrimaryKeyAppend, setAccessType, setAttributes, setChanged, setConnectionPoolingProperties, setConnectSQL, setDatabaseName, setDatabasePortNumberString, setDataTablespace, setForcingIdentifiersToLowerCase, setForcingIdentifiersToUpperCase, setHostname, setIndexTablespace, setInitialPoolSize, setMaximumPoolSize, setName, setObjectId, setPartitioned, setPartitioningInformation, setPassword, setPluginId, setPluginName, setPreferredSchemaName, setQuoteAllFields, setServername, setStreamingResults, setSupportsBooleanDataType, setUsername, setUsingConnectionPool, setUsingDoubleDecimalAsSchemaTableSeparator, supportsBatchUpdates, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.pentaho.di.core.database.DatabaseInterface
addExtraOption, checkIndexExists, clone, generateColumnAlias, getAccessType, getAttributes, getConnectionPoolingProperties, getConnectSQL, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDropColumnStatement, getEndQuote, getExtraOptions, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getMaxColumnsInIndex, getMaximumPoolSize, getName, getNextBatchId, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSchemaTableCombination, getSelectCountStatement, getServername, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLSequenceExists, getSQLUnlockTables, getStartQuote, getSynonymTypes, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, parseStatements, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCreateTablePrimaryKeyAppend, setAccessType, setAttributes, setChanged, setConnectionPoolingProperties, setConnectSQL, setDatabaseName, setDatabasePortNumberString, setDataTablespace, setForcingIdentifiersToLowerCase, setForcingIdentifiersToUpperCase, setHostname, setIndexTablespace, setInitialPoolSize, setMaximumPoolSize, setName, setObjectId, setPartitioned, setPartitioningInformation, setPassword, setPluginId, setPluginName, setPreferredSchemaName, setQuoteAllFields, setServername, setStreamingResults, setSupportsBooleanDataType, setUsername, setUsingConnectionPool, setUsingDoubleDecimalAsSchemaTableSeparator, supportsBatchUpdates, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList
 

Constructor Detail

VerticaDatabaseMeta

public VerticaDatabaseMeta()
Method Detail

getAccessTypeList

public int[] getAccessTypeList()
Description copied from interface: DatabaseInterface
Get the list of possible access types for a database.

Specified by:
getAccessTypeList in interface DatabaseInterface
Specified by:
getAccessTypeList in class BaseDatabaseMeta
Returns:
the list of possible access types for a database.

getDriverClass

public String getDriverClass()
Description copied from interface: DatabaseInterface
Obtain the name of the JDBC driver class that we need to use!

Specified by:
getDriverClass in interface DatabaseInterface
Returns:
the name of the JDBC driver class for the specific database

getURL

public String getURL(String hostname,
                     String port,
                     String databaseName)
Specified by:
getURL in interface DatabaseInterface
Parameters:
hostname - the hostname
port - the port as a string
databaseName - the database name
Returns:
the URL to use for connecting to the database.

isFetchSizeSupported

public boolean isFetchSizeSupported()
Checks whether or not the command setFetchSize() is supported by the JDBC driver...

Specified by:
isFetchSizeSupported in interface DatabaseInterface
Overrides:
isFetchSizeSupported in class BaseDatabaseMeta
Returns:
true is setFetchSize() is supported!

supportsBitmapIndex

public boolean supportsBitmapIndex()
Specified by:
supportsBitmapIndex in interface DatabaseInterface
Overrides:
supportsBitmapIndex in class BaseDatabaseMeta
Returns:
true if the database supports bitmap indexes

supportsRepository

public boolean supportsRepository()
Specified by:
supportsRepository in interface DatabaseInterface
Overrides:
supportsRepository in class BaseDatabaseMeta
Returns:
true if Kettle can create a repository on this type of database.

getAddColumnStatement

public String getAddColumnStatement(String tablename,
                                    ValueMetaInterface v,
                                    String tk,
                                    boolean use_autoinc,
                                    String pk,
                                    boolean semicolon)
Generates the SQL statement to add a column to the specified table For this generic type, i set it to the most common possibility.

Specified by:
getAddColumnStatement in interface DatabaseInterface
Parameters:
tablename - The table to add
v - The column defined as a value
tk - the name of the technical key field
use_autoinc - whether or not this field uses auto increment
pk - the name of the primary key field
semicolon - whether or not to add a semi-colon behind the statement.
Returns:
the SQL statement to add a column to the specified table

getModifyColumnStatement

public String getModifyColumnStatement(String tablename,
                                       ValueMetaInterface v,
                                       String tk,
                                       boolean use_autoinc,
                                       String pk,
                                       boolean semicolon)
Generates the SQL statement to modify a column in the specified table

Specified by:
getModifyColumnStatement in interface DatabaseInterface
Parameters:
tablename - The table to add
v - The column defined as a value
tk - the name of the technical key field
use_autoinc - whether or not this field uses auto increment
pk - the name of the primary key field
semicolon - whether or not to add a semi-colon behind the statement.
Returns:
the SQL statement to modify a column in the specified table

getFieldDefinition

public String getFieldDefinition(ValueMetaInterface v,
                                 String tk,
                                 String pk,
                                 boolean use_autoinc,
                                 boolean add_fieldname,
                                 boolean add_cr)
Description copied from interface: DatabaseInterface
Describe a Value as a field in the database.

Specified by:
getFieldDefinition in interface DatabaseInterface
Parameters:
v - The value to describe
tk - The field that's going to be the technical key
pk - The field that's going to be the primary key
use_autoinc - Use autoincrement or not
add_fieldname - Add the fieldname to the definition or not
add_cr - Add a cariage return at the end of the definition or not.
Returns:
a value described as a field in this database.

getUsedLibraries

public String[] getUsedLibraries()
Specified by:
getUsedLibraries in interface DatabaseInterface
Returns:
the required libraries (in libext) for this database connection.

getDefaultDatabasePort

public int getDefaultDatabasePort()
Specified by:
getDefaultDatabasePort in interface DatabaseInterface
Overrides:
getDefaultDatabasePort in class BaseDatabaseMeta
Returns:
the default database port number

getLimitClause

public String getLimitClause(int nrRows)
Specified by:
getLimitClause in interface DatabaseInterface
Overrides:
getLimitClause in class BaseDatabaseMeta
Parameters:
nrRows - The number of rows to which we want to limit the result of the query.
Returns:
the clause after a select statement to limit the number of rows

getMaxTextFieldLength

public int getMaxTextFieldLength()
Description copied from class: BaseDatabaseMeta
Get the maximum length of a text field for this database connection. This includes optional CLOB, Memo and Text fields. (the maximum!)

Specified by:
getMaxTextFieldLength in interface DatabaseInterface
Overrides:
getMaxTextFieldLength in class BaseDatabaseMeta
Returns:
The maximum text field length for this database type. (mostly CLOB_LENGTH)

getMaxVARCHARLength

public int getMaxVARCHARLength()
Description copied from class: BaseDatabaseMeta
Get the maximum length of a text field (VARCHAR) for this database connection. If this size is exceeded use a CLOB.

Specified by:
getMaxVARCHARLength in interface DatabaseInterface
Overrides:
getMaxVARCHARLength in class BaseDatabaseMeta
Returns:
The maximum VARCHAR field length for this database type. (mostly identical to getMaxTextFieldLength() - CLOB_LENGTH)

getReservedWords

public String[] getReservedWords()
Specified by:
getReservedWords in interface DatabaseInterface
Overrides:
getReservedWords in class BaseDatabaseMeta
Returns:
an array of reserved words for the database type...

getSQLColumnExists

public String getSQLColumnExists(String columnname,
                                 String tablename)
Specified by:
getSQLColumnExists in interface DatabaseInterface
Overrides:
getSQLColumnExists in class BaseDatabaseMeta
tablename - The table to verify the existance for
Returns:
The SQL to execute to verify if the given table exists. If an Exception is thrown for this SQL, we don't have the column.

getSQLQueryFields

public String getSQLQueryFields(String tableName)
Description copied from class: BaseDatabaseMeta
Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database table

Specified by:
getSQLQueryFields in interface DatabaseInterface
Overrides:
getSQLQueryFields in class BaseDatabaseMeta
Parameters:
tableName - The name of the table to determine the layout for
Returns:
The SQL to launch.

getSQLTableExists

public String getSQLTableExists(String tablename)
Specified by:
getSQLTableExists in interface DatabaseInterface
Overrides:
getSQLTableExists in class BaseDatabaseMeta
Parameters:
tablename - The table to verify the existance for
Returns:
The SQL to execute to verify if the given table exists. If an Exception is thrown for this SQL, we don't have the table.

getViewTypes

public String[] getViewTypes()
Specified by:
getViewTypes in interface DatabaseInterface
Overrides:
getViewTypes in class BaseDatabaseMeta
Returns:
a list of table types to retrieve views for the database

supportsAutoInc

public boolean supportsAutoInc()
Specified by:
supportsAutoInc in interface DatabaseInterface
Overrides:
supportsAutoInc in class BaseDatabaseMeta
Returns:
Whether or not the database can use auto increment type of fields (pk)

supportsBooleanDataType

public boolean supportsBooleanDataType()
Specified by:
supportsBooleanDataType in interface DatabaseInterface
Overrides:
supportsBooleanDataType in class BaseDatabaseMeta
Returns:
true if the database supports a boolean, bit, logical, ... datatype The default is false: map to a string.

requiresCastToVariousForIsNull

public boolean requiresCastToVariousForIsNull()
Specified by:
requiresCastToVariousForIsNull in interface DatabaseInterface
Overrides:
requiresCastToVariousForIsNull in class BaseDatabaseMeta
Returns:
true if the database requires you to cast a parameter to varchar before comparing to null. Only required for DB2 and Vertica

getExtraOptionIndicator

public String getExtraOptionIndicator()
Specified by:
getExtraOptionIndicator in interface DatabaseInterface
Overrides:
getExtraOptionIndicator in class BaseDatabaseMeta
Returns:
This indicator separates the normal URL from the options

getExtraOptionSeparator

public String getExtraOptionSeparator()
Specified by:
getExtraOptionSeparator in interface DatabaseInterface
Overrides:
getExtraOptionSeparator in class BaseDatabaseMeta
Returns:
The extra option separator in database URL for this platform (usually this is semicolon ; )

supportsSequences

public boolean supportsSequences()
Specified by:
supportsSequences in interface DatabaseInterface
Overrides:
supportsSequences in class BaseDatabaseMeta
Returns:
true if the database supports sequences

getSQLCurrentSequenceValue

public String getSQLCurrentSequenceValue(String sequenceName)
Get the SQL to get the next value of a sequence. (Vertica version)

Specified by:
getSQLCurrentSequenceValue in interface DatabaseInterface
Overrides:
getSQLCurrentSequenceValue in class BaseDatabaseMeta
Parameters:
sequenceName - The sequence name
Returns:
the SQL to get the next value of a sequence.

getSQLNextSequenceValue

public String getSQLNextSequenceValue(String sequenceName)
Get the SQL to get the next value of a sequence.

Specified by:
getSQLNextSequenceValue in interface DatabaseInterface
Overrides:
getSQLNextSequenceValue in class BaseDatabaseMeta
Parameters:
sequenceName - The sequence name
Returns:
the SQL to get the next value of a sequence.

supportsTimeStampToDateConversion

public boolean supportsTimeStampToDateConversion()
Specified by:
supportsTimeStampToDateConversion in interface DatabaseInterface
Overrides:
supportsTimeStampToDateConversion in class BaseDatabaseMeta
Returns:
false as the database does not support timestamp to date conversion.