Package org.pentaho.di.core.database
Class GoogleBigQueryDatabaseMeta
- java.lang.Object
-
- org.pentaho.di.core.database.BaseDatabaseMeta
-
- org.pentaho.di.core.database.GoogleBigQueryDatabaseMeta
-
- All Implemented Interfaces:
Cloneable
,DatabaseInterface
,DatabaseInterfaceExtended
public class GoogleBigQueryDatabaseMeta extends BaseDatabaseMeta implements DatabaseInterface
-
-
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 GoogleBigQueryDatabaseMeta()
-
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
getEndQuote()
String
getExtraOptionIndicator()
String
getExtraOptionSeparator()
String
getExtraOptionsHelpText()
String
getFieldDefinition(ValueMetaInterface v, String tk, String pk, boolean useAutoinc, boolean addFieldName, boolean addCr)
Describe a Value as a field in the database.String
getLimitClause(int nrRows)
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 tableString[]
getReservedWords()
String
getSQLColumnExists(String columnname, String tablename)
String
getSQLQueryColumnFields(String columnname, String tableName)
String
getSQLQueryFields(String tableName)
Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database tableString
getSQLTableExists(String tablename)
String
getStartQuote()
String
getUnsupportedTableOutputMessage()
String
getURL(String hostname, String port, String databaseName)
String[]
getUsedLibraries()
boolean
isRequiringTransactionsOnQueries()
boolean
supportsAutoGeneratedKeys()
boolean
supportsAutoInc()
boolean
supportsBitmapIndex()
boolean
supportsBooleanDataType()
boolean
supportsStandardTableOutput()
boolean
supportsSynonyms()
boolean
supportsTimeStampToDateConversion()
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, getExtraOptions, getExtraOptionValueSeparator, getFieldnameProtector, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getMaxColumnsInIndex, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getMaxVARCHARLength, getName, getNamedCluster, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSafeFieldname, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLCurrentSequenceValue, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLNextSequenceValue, getSqlScriptStatements, getSQLSequenceExists, getSQLUnlockTables, getSQLValue, getSynonymTypes, getTablespaceDDL, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, 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, supportsBatchUpdates, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsTimestampDataType, supportsTransactions, 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, getExtraOptions, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getLegacyColumnName, getMaxColumnsInIndex, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getMaxVARCHARLength, getName, getNamedCluster, getNamedClusterList, getNextBatchId, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSafeFieldname, getSchemas, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLCurrentSequenceValue, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfProcedures, getSQLListOfSchemas, getSQLListOfSchemas, getSQLListOfSequences, getSQLLockTables, getSQLNextSequenceValue, getSqlScriptStatements, getSQLSequenceExists, getSQLUnlockTables, getSQLValue, getSynonymTypes, getTables, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, 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, supportsBatchUpdates, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsErrorHandlingOnBatchUpdates, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsIndexes, supportsNewLinesInSQL, supportsOptionsInURL, supportsPreparedStatementMetadataRetrieval, supportsRepository, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSequenceNoMaxValueOption, supportsSequences, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsTimestampDataType, supportsTransactions, 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.
-
getUsedLibraries
public String[] getUsedLibraries()
- Specified by:
getUsedLibraries
in interfaceDatabaseInterface
- Returns:
- the required libraries (in lib) for this database connection.
-
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.
-
getExtraOptionsHelpText
public String getExtraOptionsHelpText()
- Specified by:
getExtraOptionsHelpText
in interfaceDatabaseInterface
- Overrides:
getExtraOptionsHelpText
in classBaseDatabaseMeta
- Returns:
- extra help text on the supported options on the selected database platform.
-
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.
-
getAddColumnStatement
public String getAddColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)
Description copied from interface:DatabaseInterface
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)
Description copied from interface:DatabaseInterface
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
-
getLimitClause
public String getLimitClause(int nrRows)
- 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
-
getSQLQueryFields
public String getSQLQueryFields(String tableName)
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
public String getSQLTableExists(String tablename)
- 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
public String getSQLColumnExists(String columnname, String tablename)
- 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.
-
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)
-
supportsAutoGeneratedKeys
public boolean supportsAutoGeneratedKeys()
- Specified by:
supportsAutoGeneratedKeys
in interfaceDatabaseInterface
- Overrides:
supportsAutoGeneratedKeys
in classBaseDatabaseMeta
- Returns:
- true if the database supports autoGeneratedKeys
-
supportsTimeStampToDateConversion
public boolean supportsTimeStampToDateConversion()
- Specified by:
supportsTimeStampToDateConversion
in interfaceDatabaseInterface
- Overrides:
supportsTimeStampToDateConversion
in classBaseDatabaseMeta
- Returns:
- true if the database supports timestamp to date conversion. For example Interbase doesn't support this!
-
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.
-
isRequiringTransactionsOnQueries
public boolean isRequiringTransactionsOnQueries()
- Specified by:
isRequiringTransactionsOnQueries
in interfaceDatabaseInterface
- Overrides:
isRequiringTransactionsOnQueries
in classBaseDatabaseMeta
- Returns:
- true if this database needs a transaction to perform a query (auto-commit turned off).
-
getExtraOptionSeparator
public String 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 ; )
-
getExtraOptionIndicator
public String getExtraOptionIndicator()
- Specified by:
getExtraOptionIndicator
in interfaceDatabaseInterface
- Overrides:
getExtraOptionIndicator
in classBaseDatabaseMeta
- Returns:
- This indicator separates the normal URL from the options
-
getStartQuote
public String getStartQuote()
- Specified by:
getStartQuote
in interfaceDatabaseInterface
- Overrides:
getStartQuote
in classBaseDatabaseMeta
- Returns:
- The start quote sequence, mostly just double quote, but sometimes [, ...
-
getEndQuote
public String getEndQuote()
- Specified by:
getEndQuote
in interfaceDatabaseInterface
- Overrides:
getEndQuote
in classBaseDatabaseMeta
- Returns:
- The end quote sequence, mostly just double quote, but sometimes ], ...
-
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
-
getReservedWords
public String[] getReservedWords()
- Specified by:
getReservedWords
in interfaceDatabaseInterface
- Overrides:
getReservedWords
in classBaseDatabaseMeta
- Returns:
- an array of reserved words for the database type...
-
supportsStandardTableOutput
public boolean supportsStandardTableOutput()
- Specified by:
supportsStandardTableOutput
in interfaceDatabaseInterface
- Returns:
- true if database supports the standard table output step
-
getUnsupportedTableOutputMessage
public String getUnsupportedTableOutputMessage()
- Specified by:
getUnsupportedTableOutputMessage
in interfaceDatabaseInterface
- Returns:
- the unsupported message if database does not support standard table output step
-
-