org.pentaho.di.core.database
Class H2DatabaseMeta

java.lang.Object
  extended by org.pentaho.di.core.database.BaseDatabaseMeta
      extended by org.pentaho.di.core.database.H2DatabaseMeta
All Implemented Interfaces:
Cloneable, DatabaseInterface

public class H2DatabaseMeta
extends BaseDatabaseMeta
implements DatabaseInterface

Contains Hypersonic specific information through static final members

Since:
11-mrt-2005
Author:
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
H2DatabaseMeta()
           
 
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 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 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
 int getNotFoundTK(boolean use_autoinc)
          Get the not found technical key.
 String[] getReservedWords()
           
 String getSchemaTableCombination(String schema_name, String table_part)
          Get the schema-table combination to query the right table.
 String getURL(String hostname, String port, String databaseName)
           
 String[] getUsedLibraries()
           
 boolean isFetchSizeSupported()
          Checks whether or not the command setFetchSize() is supported by the JDBC driver...
 boolean supportsAutoInc()
           
 boolean supportsBitmapIndex()
           
 boolean supportsGetBlob()
           
 boolean supportsPreparedStatementMetadataRetrieval()
          Most databases allow you to retrieve result metadata by preparing a SELECT statement.
 boolean supportsRepository()
           
 boolean supportsSetCharacterStream()
          See if this database supports the setCharacterStream() method on a PreparedStatement.
 
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, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getLimitClause, getMaxColumnsInIndex, getMaximumPoolSize, getMaxTextFieldLength, getMaxVARCHARLength, getName, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSelectCountStatement, getServername, getSQLColumnExists, getSQLCurrentSequenceValue, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLNextSequenceValue, getSQLQueryFields, getSQLSequenceExists, getSQLTableExists, getSQLUnlockTables, getStartQuote, getSynonymTypes, getTablespaceDDL, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, parseStatements, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCastToVariousForIsNull, 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, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsNewLinesInSQL, supportsOptionsInURL, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTimeStampToDateConversion, 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, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getLimitClause, getMaxColumnsInIndex, getMaximumPoolSize, getMaxTextFieldLength, getMaxVARCHARLength, getName, getNextBatchId, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSelectCountStatement, getServername, getSQLColumnExists, getSQLCurrentSequenceValue, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLNextSequenceValue, getSQLQueryFields, getSQLSequenceExists, getSQLTableExists, getSQLUnlockTables, getStartQuote, getSynonymTypes, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, parseStatements, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCastToVariousForIsNull, 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, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsNewLinesInSQL, supportsOptionsInURL, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTimeStampToDateConversion, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList
 

Constructor Detail

H2DatabaseMeta

public H2DatabaseMeta()
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.

getNotFoundTK

public int getNotFoundTK(boolean use_autoinc)
Description copied from interface: DatabaseInterface
Get the not found technical key.

Specified by:
getNotFoundTK in interface DatabaseInterface
Overrides:
getNotFoundTK in class BaseDatabaseMeta
Parameters:
use_autoinc - Whether or not we want to use an auto increment field
Returns:
the lowest possible technical key to be used as the NOT FOUND row in a slowly changing dimension.
See Also:
DatabaseInterface.getNotFoundTK(boolean)

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

getDefaultDatabasePort

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

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!

getSchemaTableCombination

public String getSchemaTableCombination(String schema_name,
                                        String table_part)
Description copied from class: BaseDatabaseMeta
Get the schema-table combination to query the right table. Usually that is SCHEMA.TABLENAME, however there are exceptions to this rule...

Specified by:
getSchemaTableCombination in interface DatabaseInterface
Overrides:
getSchemaTableCombination in class BaseDatabaseMeta
Parameters:
schema_name - The schema name
table_part - The tablename
Returns:
the schema-table combination to query the right table.
See Also:
DatabaseInterface.getSchemaTableCombination(java.lang.String, java.lang.String)

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.

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)

supportsGetBlob

public boolean supportsGetBlob()
Specified by:
supportsGetBlob in interface DatabaseInterface
Overrides:
supportsGetBlob in class BaseDatabaseMeta
Returns:
true if the database JDBC driver supports getBlob on the resultset. If not we must use getBytes() to get the data.

supportsSetCharacterStream

public boolean supportsSetCharacterStream()
Description copied from class: BaseDatabaseMeta
See if this database supports the setCharacterStream() method on a PreparedStatement.

Specified by:
supportsSetCharacterStream in interface DatabaseInterface
Overrides:
supportsSetCharacterStream in class BaseDatabaseMeta
Returns:
true if we can set a Stream on a field in a PreparedStatement. False if not.

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.

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...

getUsedLibraries

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

supportsPreparedStatementMetadataRetrieval

public boolean supportsPreparedStatementMetadataRetrieval()
Most databases allow you to retrieve result metadata by preparing a SELECT statement.

Specified by:
supportsPreparedStatementMetadataRetrieval in interface DatabaseInterface
Overrides:
supportsPreparedStatementMetadataRetrieval in class BaseDatabaseMeta
Returns:
true if the database supports retrieval of query metadata from a prepared statement. False if the query needs to be executed first.