org.pentaho.di.core.database
Class AS400DatabaseMeta
java.lang.Object
org.pentaho.di.core.database.BaseDatabaseMeta
org.pentaho.di.core.database.AS400DatabaseMeta
- All Implemented Interfaces:
- Cloneable, DatabaseInterface
public class AS400DatabaseMeta
- extends BaseDatabaseMeta
- implements DatabaseInterface
Contains AS/400 specific information through static final members
- Since:
- 11-mrt-2005
- Author:
- Matt
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 |
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 |
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. |
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 |
getSQLCurrentSequenceValue(String sequenceName)
Get the current value of a database sequence |
String |
getSQLNextSequenceValue(String sequenceName)
Get the SQL to get the next value of a sequence. |
String |
getSQLSequenceExists(String sequenceName)
Check if a sequence exists. |
String |
getTruncateTableStatement(String tableName)
|
String |
getURL(String hostname,
String port,
String database)
|
String[] |
getUsedLibraries()
|
boolean |
supportsFloatRoundingOnUpdate()
Most databases round number(7,2) 17.29999999 to 17.30, but some don't. |
boolean |
supportsSequenceNoMaxValueOption()
|
boolean |
supportsSequences()
|
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, getDefaultDatabasePort, getDropColumnStatement, getEndQuote, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getLimitClause, getMaxColumnsInIndex, getMaximumPoolSize, getName, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSchemaTableCombination, getSelectCountStatement, getServername, getSQLColumnExists, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLQueryFields, getSQLTableExists, getSQLUnlockTables, getStartQuote, getSynonymTypes, getTablespaceDDL, getTableTypes, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, 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, supportsAutoInc, supportsBatchUpdates, supportsBitmapIndex, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTimeStampToDateConversion, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList |
Methods inherited from interface org.pentaho.di.core.database.DatabaseInterface |
addExtraOption, checkIndexExists, clone, generateColumnAlias, getAccessType, getAttributes, getConnectionPoolingProperties, getConnectSQL, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDefaultDatabasePort, getDropColumnStatement, getEndQuote, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getLimitClause, getMaxColumnsInIndex, getMaximumPoolSize, getName, getNextBatchId, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSchemaTableCombination, getSelectCountStatement, getServername, getSQLColumnExists, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLQueryFields, getSQLTableExists, getSQLUnlockTables, getStartQuote, getSynonymTypes, getTableTypes, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, 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, supportsAutoInc, supportsBatchUpdates, supportsBitmapIndex, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTimeStampToDateConversion, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList |
AS400DatabaseMeta
public AS400DatabaseMeta()
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
getMaxTextFieldLength
public int getMaxTextFieldLength()
- 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)
getURL
public String getURL(String hostname,
String port,
String database)
- Specified by:
getURL
in interface DatabaseInterface
- Parameters:
hostname
- the hostnameport
- the port as a stringdatabase
- the database name
- Returns:
- the URL to use for connecting to the database.
getTruncateTableStatement
public String getTruncateTableStatement(String tableName)
- Specified by:
getTruncateTableStatement
in interface DatabaseInterface
- Overrides:
getTruncateTableStatement
in class BaseDatabaseMeta
- Parameters:
tableName
- The table to be truncated.
- Returns:
- The SQL statement to truncate a table: remove all rows from it without a transaction
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
- Specified by:
getAddColumnStatement
in interface DatabaseInterface
- Parameters:
tablename
- The table to addv
- The column defined as a valuetk
- the name of the technical key fielduse_autoinc
- 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 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 addv
- The column defined as a valuetk
- the name of the technical key fielduse_autoinc
- 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 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 describetk
- The field that's going to be the technical keypk
- The field that's going to be the primary keyuse_autoinc
- Use autoincrement or notadd_fieldname
- Add the fieldname to the definition or notadd_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.
supportsFloatRoundingOnUpdate
public boolean supportsFloatRoundingOnUpdate()
- Most databases round number(7,2) 17.29999999 to 17.30, but some don't.
- Specified by:
supportsFloatRoundingOnUpdate
in interface DatabaseInterface
- Overrides:
supportsFloatRoundingOnUpdate
in class BaseDatabaseMeta
- Returns:
- true if the database supports roundinf of floating point data on update/insert
getMaxVARCHARLength
public int getMaxVARCHARLength()
- 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)
supportsSequences
public boolean supportsSequences()
- Specified by:
supportsSequences
in interface DatabaseInterface
- Overrides:
supportsSequences
in class BaseDatabaseMeta
- Returns:
- true if the database supports sequences
getSQLSequenceExists
public String getSQLSequenceExists(String sequenceName)
- Check if a sequence exists.
- Specified by:
getSQLSequenceExists
in interface DatabaseInterface
- Overrides:
getSQLSequenceExists
in class BaseDatabaseMeta
- Parameters:
sequenceName
- The sequence to check
- Returns:
- The SQL to get the name of the sequence back from the databases data dictionary
getSQLCurrentSequenceValue
public String getSQLCurrentSequenceValue(String sequenceName)
- Get the current value of a database sequence
- Specified by:
getSQLCurrentSequenceValue
in interface DatabaseInterface
- Overrides:
getSQLCurrentSequenceValue
in class BaseDatabaseMeta
- Parameters:
sequenceName
- The sequence to check
- Returns:
- The current value of a database sequence
getSQLNextSequenceValue
public String getSQLNextSequenceValue(String sequenceName)
- Get the SQL to get the next value of a sequence. (Oracle only)
- 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. (Oracle only)
supportsSequenceNoMaxValueOption
public boolean supportsSequenceNoMaxValueOption()
- Specified by:
supportsSequenceNoMaxValueOption
in interface DatabaseInterface
- Overrides:
supportsSequenceNoMaxValueOption
in class BaseDatabaseMeta
- Returns:
- true if the database supports the NOMAXVALUE sequence option.
The default is false, AS/400 and DB2 support this.