Package org.pentaho.di.core.database
Class VerticaDatabaseMeta
java.lang.Object
org.pentaho.di.core.database.BaseDatabaseMeta
org.pentaho.di.core.database.VerticaDatabaseMeta
- All Implemented Interfaces:
Cloneable
,DatabaseInterface
,DatabaseInterfaceExtended
- Direct Known Subclasses:
Vertica5DatabaseMeta
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_PRESERVE_RESERVED_WORD_CASE, ATTRIBUTE_QUOTE_ALL_FIELDS, ATTRIBUTE_SQL_CONNECT, ATTRIBUTE_SUPPORTS_BOOLEAN_DATA_TYPE, ATTRIBUTE_SUPPORTS_TIMESTAMP_DATA_TYPE, ATTRIBUTE_USE_POOLING, ATTRIBUTE_USE_RESULT_STREAMING, AUTOINCREMENT_SQL_FOR_BATCH_ID, NAMED_CLUSTER_ID, poolingParameters, releaseSavepoint, SELECT_COUNT_STATEMENT, SEQUENCE_FOR_BATCH_ID
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint[]
Get the list of possible access types for a database.getAddColumnStatement
(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, 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
Obtain the name of the JDBC driver class that we need to use!getFieldDefinition
(ValueMetaInterface v, String tk, String pk, boolean useAutoinc, boolean addFieldName, boolean addCr) Describe a Value as a field in the database.getLimitClause
(int nrRows) int
Get the maximum length of a text field (VARCHAR) for this database connection.getModifyColumnStatement
(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon) Generates the SQL statement to modify a column in the specified tableString[]
getSQLColumnExists
(String columnname, String tablename) getSQLCurrentSequenceValue
(String sequenceName) Get the SQL to get the next value of a sequence.getSQLNextSequenceValue
(String sequenceName) Get the SQL to get the next value of a sequence.getSQLQueryFields
(String tableName) Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database tablegetSQLSequenceExists
(String sequenceName) Check if a sequence exists.getSQLTableExists
(String tablename) String[]
String[]
boolean
boolean
Checks whether or not the command setFetchSize() is supported by the JDBC driver...boolean
boolean
boolean
boolean
boolean
boolean
boolean
Methods inherited from class org.pentaho.di.core.database.BaseDatabaseMeta
addAttribute, addDefaultOptions, addExtraOption, canTest, checkIndexExists, clone, customizeValueFromSQLType, fullExceptionLog, generateColumnAlias, getAccessType, getAttribute, getAttributes, getBackwardsCompatibleSchemaTableCombination, getBackwardsCompatibleTable, getConnectionPoolingProperties, getConnectSQL, getCreateTableStatement, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDefaultOptions, getDisplayName, getDropColumnStatement, getDropTableIfExistsStatement, getEndQuote, getExtraOptions, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFieldnameProtector, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getMaxColumnsInIndex, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getName, getNamedCluster, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSafeFieldname, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLLockTables, getSqlScriptStatements, getSQLUnlockTables, getSQLValue, getStartQuote, getSynonymTypes, getTablespaceDDL, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getXulOverlayFile, isChanged, isDefaultingToUppercase, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, onlySpaces, parseStatements, preserveReservedCase, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCreateTablePrimaryKeyAppend, requiresName, setAccessType, setAttributes, setChanged, setConnectionPoolingProperties, setConnectSQL, setDatabaseName, setDatabasePortNumberString, setDataTablespace, setDisplayName, setForcingIdentifiersToLowerCase, setForcingIdentifiersToUpperCase, setHostname, setIndexTablespace, setInitialPoolSize, setInitialPoolSizeString, setMaximumPoolSize, setMaximumPoolSizeString, setName, setNamedCluster, setObjectId, setPartitioned, setPartitioningInformation, setPassword, setPluginId, setPluginName, setPreferredSchemaName, setPreserveReservedCase, setQuoteAllFields, setServername, setStreamingResults, setSupportsBooleanDataType, setSupportsTimestampDataType, setUsername, setUsingConnectionPool, setUsingDoubleDecimalAsSchemaTableSeparator, supportsAutoGeneratedKeys, supportsBatchUpdates, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTimestampDataType, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.pentaho.di.core.database.DatabaseInterface
addAttribute, addDefaultOptions, addExtraOption, checkIndexExists, clone, createSqlScriptParser, customizeValueFromSQLType, generateColumnAlias, getAccessType, getAttribute, getAttributes, getConnectionPoolingProperties, getConnectSQL, getCreateTableStatement, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDefaultOptions, getDisplayName, getDropColumnStatement, getEndQuote, getExtraOptions, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getLegacyColumnName, getMaxColumnsInIndex, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getName, getNamedCluster, getNamedClusterList, getNextBatchId, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSafeFieldname, getSchemas, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSchemas, getSQLLockTables, getSqlScriptStatements, getSQLUnlockTables, getSQLValue, getStartQuote, getSynonymTypes, getTables, getTableTypes, getTruncateTableStatement, getUnsupportedTableOutputMessage, getUsername, getValueFromResultSet, getXulOverlayFile, isChanged, isDefaultingToUppercase, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, parseStatements, preserveReservedCase, putOptionalOptions, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCreateTablePrimaryKeyAppend, setAccessType, setAttributes, setChanged, setConnectionPoolingProperties, setConnectSQL, setDatabaseName, setDatabasePortNumberString, setDataTablespace, setDisplayName, setForcingIdentifiersToLowerCase, setForcingIdentifiersToUpperCase, setHostname, setIndexTablespace, setInitialPoolSize, setInitialPoolSizeString, setMaximumPoolSize, setMaximumPoolSizeString, setName, setNamedCluster, setObjectId, setPartitioned, setPartitioningInformation, setPassword, setPluginId, setPluginName, setPreferredSchemaName, setPreserveReservedCase, setQuoteAllFields, setServername, setStreamingResults, setSupportsBooleanDataType, setSupportsTimestampDataType, setUsername, setUsingConnectionPool, setUsingDoubleDecimalAsSchemaTableSeparator, supportsAutoGeneratedKeys, supportsBatchUpdates, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsIndexes, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsStandardTableOutput, supportsSynonyms, supportsTimestampDataType, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList
-
Constructor Details
-
VerticaDatabaseMeta
public VerticaDatabaseMeta()
-
-
Method Details
-
getAccessTypeList
public int[] getAccessTypeList()Description copied from interface:DatabaseInterface
Get the list of possible access types for a database.- Specified by:
getAccessTypeList
in interfaceDatabaseInterface
- Specified by:
getAccessTypeList
in classBaseDatabaseMeta
- Returns:
- the list of possible access types for a database.
-
getDriverClass
Description copied from interface:DatabaseInterface
Obtain the name of the JDBC driver class that we need to use!- Specified by:
getDriverClass
in interfaceDatabaseInterface
- Returns:
- the name of the JDBC driver class for the specific database
-
getURL
- Specified by:
getURL
in interfaceDatabaseInterface
- Parameters:
hostname
- the hostnameport
- the port as a stringdatabaseName
- 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 interfaceDatabaseInterface
- Overrides:
isFetchSizeSupported
in classBaseDatabaseMeta
- Returns:
- true is setFetchSize() is supported!
-
supportsBitmapIndex
public boolean supportsBitmapIndex()- Specified by:
supportsBitmapIndex
in interfaceDatabaseInterface
- Overrides:
supportsBitmapIndex
in classBaseDatabaseMeta
- Returns:
- true if the database supports bitmap indexes
-
getAddColumnStatement
public String getAddColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, 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 interfaceDatabaseInterface
- Parameters:
tablename
- The table to addv
- The column defined as a valuetk
- the name of the technical key fielduseAutoinc
- whether or not this field uses auto incrementpk
- the name of the primary key fieldsemicolon
- 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 useAutoinc, String pk, boolean semicolon) Generates the SQL statement to modify a column in the specified table- Specified by:
getModifyColumnStatement
in interfaceDatabaseInterface
- Parameters:
tablename
- The table to addv
- The column defined as a valuetk
- the name of the technical key fielduseAutoinc
- whether or not this field uses auto incrementpk
- the name of the primary key fieldsemicolon
- 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 useAutoinc, boolean addFieldName, boolean addCr) Description copied from interface:DatabaseInterface
Describe a Value as a field in the database.- Specified by:
getFieldDefinition
in interfaceDatabaseInterface
- Parameters:
v
- The value to describetk
- The field that's going to be the technical keypk
- The field that's going to be the primary keyuseAutoinc
- Use autoincrement or notaddFieldName
- Add the fieldname to the definition or notaddCr
- Add a cariage return at the end of the definition or not.- Returns:
- a value described as a field in this database.
-
getUsedLibraries
- Specified by:
getUsedLibraries
in interfaceDatabaseInterface
- Returns:
- the required libraries (in lib) for this database connection.
-
getDefaultDatabasePort
public int getDefaultDatabasePort()- Specified by:
getDefaultDatabasePort
in interfaceDatabaseInterface
- Overrides:
getDefaultDatabasePort
in classBaseDatabaseMeta
- Returns:
- the default database port number
-
getLimitClause
- Specified by:
getLimitClause
in interfaceDatabaseInterface
- Overrides:
getLimitClause
in classBaseDatabaseMeta
- 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
-
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 interfaceDatabaseInterface
- Overrides:
getMaxVARCHARLength
in classBaseDatabaseMeta
- Returns:
- The maximum VARCHAR field length for this database type. (mostly identical to getMaxTextFieldLength() - CLOB_LENGTH)
-
getReservedWords
- Specified by:
getReservedWords
in interfaceDatabaseInterface
- Overrides:
getReservedWords
in classBaseDatabaseMeta
- Returns:
- an array of reserved words for the database type...
-
getSQLColumnExists
- Specified by:
getSQLColumnExists
in interfaceDatabaseInterface
- Overrides:
getSQLColumnExists
in classBaseDatabaseMeta
- Parameters:
columnname
- The column to verify the existance fortablename
- 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
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 interfaceDatabaseInterface
- Overrides:
getSQLQueryFields
in classBaseDatabaseMeta
- Parameters:
tableName
- The name of the table to determine the layout for- Returns:
- The SQL to launch.
-
getSQLTableExists
- Specified by:
getSQLTableExists
in interfaceDatabaseInterface
- Overrides:
getSQLTableExists
in classBaseDatabaseMeta
- 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
- Specified by:
getViewTypes
in interfaceDatabaseInterface
- Overrides:
getViewTypes
in classBaseDatabaseMeta
- Returns:
- a list of table types to retrieve views for the database
-
supportsAutoInc
public boolean supportsAutoInc()- Specified by:
supportsAutoInc
in interfaceDatabaseInterface
- Overrides:
supportsAutoInc
in classBaseDatabaseMeta
- Returns:
- Whether or not the database can use auto increment type of fields (pk)
-
supportsBooleanDataType
public boolean supportsBooleanDataType()- Specified by:
supportsBooleanDataType
in interfaceDatabaseInterface
- Overrides:
supportsBooleanDataType
in classBaseDatabaseMeta
- 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 interfaceDatabaseInterface
- Overrides:
requiresCastToVariousForIsNull
in classBaseDatabaseMeta
- Returns:
- true if the database requires you to cast a parameter to varchar before comparing to null. Only required for DB2 and Vertica
-
getExtraOptionIndicator
- Specified by:
getExtraOptionIndicator
in interfaceDatabaseInterface
- Overrides:
getExtraOptionIndicator
in classBaseDatabaseMeta
- Returns:
- This indicator separates the normal URL from the options
-
getExtraOptionSeparator
- Specified by:
getExtraOptionSeparator
in interfaceDatabaseInterface
- Overrides:
getExtraOptionSeparator
in classBaseDatabaseMeta
- Returns:
- The extra option separator in database URL for this platform (usually this is semicolon ; )
-
supportsSequences
public boolean supportsSequences()- Specified by:
supportsSequences
in interfaceDatabaseInterface
- Overrides:
supportsSequences
in classBaseDatabaseMeta
- Returns:
- true if the database supports sequences
-
getSQLSequenceExists
Description copied from class:BaseDatabaseMeta
Check if a sequence exists.- Specified by:
getSQLSequenceExists
in interfaceDatabaseInterface
- Overrides:
getSQLSequenceExists
in classBaseDatabaseMeta
- Parameters:
sequenceName
- The sequence to check- Returns:
- The SQL to get the name of the sequence back from the databases data dictionary
-
getSQLListOfSequences
- Specified by:
getSQLListOfSequences
in interfaceDatabaseInterface
- Overrides:
getSQLListOfSequences
in classBaseDatabaseMeta
- Returns:
- The SQL on this database to get a list of sequences.
-
getSQLCurrentSequenceValue
Get the SQL to get the next value of a sequence. (Vertica version)- Specified by:
getSQLCurrentSequenceValue
in interfaceDatabaseInterface
- Overrides:
getSQLCurrentSequenceValue
in classBaseDatabaseMeta
- Parameters:
sequenceName
- The sequence name- Returns:
- the SQL to get the next value of a sequence.
-
getSQLNextSequenceValue
Get the SQL to get the next value of a sequence.- Specified by:
getSQLNextSequenceValue
in interfaceDatabaseInterface
- Overrides:
getSQLNextSequenceValue
in classBaseDatabaseMeta
- Parameters:
sequenceName
- The sequence name- Returns:
- the SQL to get the next value of a sequence.
-
supportsTimeStampToDateConversion
public boolean supportsTimeStampToDateConversion()- Specified by:
supportsTimeStampToDateConversion
in interfaceDatabaseInterface
- Overrides:
supportsTimeStampToDateConversion
in classBaseDatabaseMeta
- Returns:
- false as the database does not support timestamp to date conversion.
-
supportsGetBlob
public boolean supportsGetBlob()- Specified by:
supportsGetBlob
in interfaceDatabaseInterface
- Overrides:
supportsGetBlob
in classBaseDatabaseMeta
- Returns:
- true if the database JDBC driver supports getBlob on the resultset. If not we must use getBytes() to get the data.
-
isDisplaySizeTwiceThePrecision
public boolean isDisplaySizeTwiceThePrecision()- Specified by:
isDisplaySizeTwiceThePrecision
in interfaceDatabaseInterface
- Overrides:
isDisplaySizeTwiceThePrecision
in classBaseDatabaseMeta
- Returns:
- Handles the special case of Vertica where the display size returned is twice the precision. In that case, the length is the precision.
-