Package org.pentaho.di.core.database
Class DbaseDatabaseMeta
- java.lang.Object
-
- org.pentaho.di.core.database.BaseDatabaseMeta
-
- org.pentaho.di.core.database.DbaseDatabaseMeta
-
- All Implemented Interfaces:
Cloneable
,DatabaseInterface
,DatabaseInterfaceExtended
public class DbaseDatabaseMeta extends BaseDatabaseMeta implements DatabaseInterface
Contains dBase III, IV 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
Constructors Constructor Description DbaseDatabaseMeta()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int[]
getAccessTypeList()
Get the list of possible access types for a database.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 tableString
getDriverClass()
Obtain the name of the JDBC driver class that we need to use!String
getFieldDefinition(ValueMetaInterface v, String tk, String pk, boolean useAutoinc, boolean addFieldName, boolean addCr)
Describe a Value as a field in the database.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 tableint
getNotFoundTK(boolean useAutoinc)
Get the not found technical key.String
getSchemaTableCombination(String schemaName, String tablePart)
Get the schema-table combination to query the right table.String
getSQLInsertAutoIncUnknownDimensionRow(String schemaTable, String keyField, String versionField)
Get the SQL to insert a new empty unknown record in a dimension.String
getTruncateTableStatement(String tableName)
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
supportsBitmapIndex()
boolean
supportsSetMaxRows()
boolean
supportsSynonyms()
boolean
supportsTransactions()
boolean
supportsViews()
-
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, getDefaultDatabasePort, 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, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLColumnExists, getSQLCurrentSequenceValue, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLNextSequenceValue, getSQLQueryFields, getSqlScriptStatements, getSQLSequenceExists, getSQLTableExists, getSQLUnlockTables, getSQLValue, getStartQuote, getSynonymTypes, getTablespaceDDL, getTableTypes, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, 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, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetCharacterStream, supportsSetLong, supportsTimestampDataType, supportsTimeStampToDateConversion, 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, getDefaultDatabasePort, 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, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLColumnExists, getSQLCurrentSequenceValue, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLNextSequenceValue, getSQLQueryFields, getSqlScriptStatements, getSQLSequenceExists, getSQLTableExists, getSQLUnlockTables, getSQLValue, getStartQuote, getSynonymTypes, getTables, getTableTypes, getUnsupportedTableOutputMessage, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, needsToLockAllTables, 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, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsIndexes, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetCharacterStream, supportsSetLong, supportsStandardTableOutput, supportsTimestampDataType, supportsTimeStampToDateConversion, useSafePoints, useSchemaNameForTableList
-
-
-
-
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 interfaceDatabaseInterface
- Specified by:
getAccessTypeList
in classBaseDatabaseMeta
- Returns:
- the list of possible access types for a database.
-
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:
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 interfaceDatabaseInterface
- 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 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!
-
getSchemaTableCombination
public String getSchemaTableCombination(String schemaName, String tablePart)
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 interfaceDatabaseInterface
- Overrides:
getSchemaTableCombination
in classBaseDatabaseMeta
- Parameters:
schemaName
- The schema nametablePart
- The tablename- Returns:
- the schema-table combination to query the right table.
- See Also:
DatabaseInterface.getSchemaTableCombination(java.lang.String, java.lang.String)
-
supportsTransactions
public boolean supportsTransactions()
- Specified by:
supportsTransactions
in interfaceDatabaseInterface
- Overrides:
supportsTransactions
in classBaseDatabaseMeta
- Returns:
- true if the database supports transactions.
-
supportsBitmapIndex
public boolean supportsBitmapIndex()
- Specified by:
supportsBitmapIndex
in interfaceDatabaseInterface
- Overrides:
supportsBitmapIndex
in classBaseDatabaseMeta
- Returns:
- true if the database supports bitmap indexes
-
supportsViews
public boolean supportsViews()
- Specified by:
supportsViews
in interfaceDatabaseInterface
- Overrides:
supportsViews
in classBaseDatabaseMeta
- Returns:
- true if the database supports views
-
supportsSynonyms
public boolean supportsSynonyms()
- Specified by:
supportsSynonyms
in interfaceDatabaseInterface
- Overrides:
supportsSynonyms
in classBaseDatabaseMeta
- Returns:
- true if the database supports synonyms
-
supportsSetMaxRows
public boolean supportsSetMaxRows()
- Specified by:
supportsSetMaxRows
in interfaceDatabaseInterface
- Overrides:
supportsSetMaxRows
in classBaseDatabaseMeta
- Returns:
- true if the database supports setting the maximum number of return rows in a resultset.
-
getTruncateTableStatement
public String getTruncateTableStatement(String tableName)
- Specified by:
getTruncateTableStatement
in interfaceDatabaseInterface
- Overrides:
getTruncateTableStatement
in classBaseDatabaseMeta
- 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 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.
-
getUsedLibraries
public String[] 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.
-
-