Package org.pentaho.di.core.database
Class InformixDatabaseMeta
java.lang.Object
org.pentaho.di.core.database.BaseDatabaseMeta
org.pentaho.di.core.database.InformixDatabaseMeta
- All Implemented Interfaces:
Cloneable
,DatabaseInterface
,DatabaseInterfaceExtended
Contains Informix 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_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 tableint
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.getModifyColumnStatement
(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon) Generates the SQL statement to modify a column in the specified tableint
getNotFoundTK
(boolean useAutoinc) Get the not found technical key.getSQLColumnExists
(String columnname, String tablename) getSQLInsertAutoIncUnknownDimensionRow
(String schemaTable, String keyField, String versionField) Get the SQL to insert a new empty unknown record in a dimension.getSQLLockTables
(String[] tableNames) getSQLQueryColumnFields
(String columnname, String tableName) getSQLQueryFields
(String tableName) Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database tablegetSQLTableExists
(String tablename) getSQLUnlockTables
(String[] tableNames) String[]
boolean
Indicates the need to insert a placeholder (0) for auto increment fields.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, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFieldnameProtector, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getLimitClause, getMaxColumnsInIndex, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getMaxVARCHARLength, getName, getNamedCluster, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getReservedWords, getSafeFieldname, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLCurrentSequenceValue, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLNextSequenceValue, getSqlScriptStatements, getSQLSequenceExists, getSQLValue, getStartQuote, getSynonymTypes, getTablespaceDDL, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, onlySpaces, parseStatements, preserveReservedCase, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCastToVariousForIsNull, 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, supportsAutoInc, supportsBatchUpdates, supportsBitmapIndex, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsSynonyms, supportsTimestampDataType, supportsTimeStampToDateConversion, 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, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionsHelpText, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getLegacyColumnName, getLimitClause, getMaxColumnsInIndex, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getMaxVARCHARLength, getName, getNamedCluster, getNamedClusterList, getNextBatchId, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getReservedWords, getSafeFieldname, getSchemas, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLCurrentSequenceValue, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSchemas, getSQLListOfSequences, getSQLNextSequenceValue, getSqlScriptStatements, getSQLSequenceExists, getSQLValue, getStartQuote, getSynonymTypes, getTables, getTableTypes, getTruncateTableStatement, getUnsupportedTableOutputMessage, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, parseStatements, preserveReservedCase, putOptionalOptions, quoteReservedWords, quoteSQLString, releaseSavepoint, requiresCastToVariousForIsNull, 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, supportsAutoInc, supportsBatchUpdates, supportsBitmapIndex, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsIndexes, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsStandardTableOutput, supportsSynonyms, supportsTimestampDataType, supportsTimeStampToDateConversion, supportsTransactions, supportsViews, useSafePoints, useSchemaNameForTableList
-
Constructor Details
-
InformixDatabaseMeta
public InformixDatabaseMeta()
-
-
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.
-
getDefaultDatabasePort
public int getDefaultDatabasePort()- Specified by:
getDefaultDatabasePort
in interfaceDatabaseInterface
- Overrides:
getDefaultDatabasePort
in classBaseDatabaseMeta
- Returns:
- the default database port number
-
getNotFoundTK
public int getNotFoundTK(boolean useAutoinc) Description copied from interface:DatabaseInterface
Get the not found technical key.- Specified by:
getNotFoundTK
in interfaceDatabaseInterface
- Overrides:
getNotFoundTK
in classBaseDatabaseMeta
- Parameters:
useAutoinc
- 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:
-
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.
-
needsPlaceHolder
public boolean needsPlaceHolder()Indicates the need to insert a placeholder (0) for auto increment fields.- Specified by:
needsPlaceHolder
in interfaceDatabaseInterface
- Overrides:
needsPlaceHolder
in classBaseDatabaseMeta
- Returns:
- true if we need a placeholder for auto increment fields in insert statements.
-
needsToLockAllTables
public boolean needsToLockAllTables()- Specified by:
needsToLockAllTables
in interfaceDatabaseInterface
- Overrides:
needsToLockAllTables
in classBaseDatabaseMeta
- Returns:
- true if the database needs all repository tables to be locked, not just one ref table (R_REPOSITORY_LOG)
-
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.
-
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.
-
getSQLQueryColumnFields
-
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- 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.
-
getSQLLockTables
- Specified by:
getSQLLockTables
in interfaceDatabaseInterface
- Overrides:
getSQLLockTables
in classBaseDatabaseMeta
- Parameters:
tableNames
- The names of the tables to lock- Returns:
- The SQL command to lock database tables for write purposes. null is returned in case locking is not supported on the target database. null is the default value
-
getSQLUnlockTables
- Specified by:
getSQLUnlockTables
in interfaceDatabaseInterface
- Overrides:
getSQLUnlockTables
in classBaseDatabaseMeta
- Parameters:
tableNames
- The names of the tables to unlock- Returns:
- The SQL command to unlock database tables. null is returned in case locking is not supported on the target database. null is the default value
-
getUsedLibraries
- Specified by:
getUsedLibraries
in interfaceDatabaseInterface
- Returns:
- the required libraries (in lib) for this database connection.
-
getSQLInsertAutoIncUnknownDimensionRow
public String getSQLInsertAutoIncUnknownDimensionRow(String schemaTable, String keyField, String versionField) Get the SQL to insert a new empty unknown record in a dimension.- Specified by:
getSQLInsertAutoIncUnknownDimensionRow
in interfaceDatabaseInterface
- Overrides:
getSQLInsertAutoIncUnknownDimensionRow
in classBaseDatabaseMeta
- Parameters:
schemaTable
- the schema-table name to insert intokeyField
- The key fieldversionField
- the version field- Returns:
- the SQL to insert the unknown record into the SCD.
-