Class BaseDatastoreAdapter
- java.lang.Object
- 
- org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
 
- 
- All Implemented Interfaces:
- DatastoreAdapter
 - Direct Known Subclasses:
- CloudSpannerAdapter,- DB2Adapter,- DerbyAdapter,- FirebirdAdapter,- H2Adapter,- HSQLAdapter,- InformixAdapter,- MySQLAdapter,- NuoDBAdapter,- OracleAdapter,- PointbaseAdapter,- PostgreSQLAdapter,- SAPDBAdapter,- SQLAnywhereAdapter,- SQLiteAdapter,- SQLServerAdapter,- SybaseAdapter,- TimesTenAdapter,- VirtuosoAdapter
 
 public class BaseDatastoreAdapter extends Object implements DatastoreAdapter Provides methods for adapting SQL language elements to a specific vendor's database. A database adapter is primarily used to map generic JDBC data types and SQL identifiers to specific types/identifiers suitable for the database in use.Each database adapter corresponds to a particular combination of database, database version, driver, and driver version, as provided by the driver's own metadata. Database adapters cannot be constructed directly, but must be obtained using the DatastoreAdapterFactoryclass.- See Also:
- DatastoreAdapterFactory,- DatabaseMetaData
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description protected static classBaseDatastoreAdapter.ColumnTypeMappings
 - 
Field SummaryFields Modifier and Type Field Description protected StringcatalogSeparatorThe String used to separate catalog and table name.protected intdatastoreMajorVersionThe major version number of the underlying datastore.protected intdatastoreMinorVersionThe minor version number of the underlying datastore.protected StringdatastoreProductNameThe product name of the underlying datastore.protected StringdatastoreProductVersionThe version number of the underlying datastore as a string.protected intdatastoreRevisionVersionThe revision version number of the underlying datastore.protected intdriverMajorVersionThe major version number of the underlying driver.protected intdriverMinorVersionThe minor version number of the underlying driver.protected StringdriverNamethe JDBC driver nameprotected StringdriverVersionthe JDBC driver versionprotected StringidentifierQuoteStringThe String used to quote identifiers.static intMAX_IDENTIFIER_LENGTHThe maximum length of a SQL/92 identifier in characters.protected intmaxColumnNameLengthThe maximum length to be used for a column name.protected intmaxConstraintNameLengthThe maximum length to be used for a table constraint name.protected intmaxIndexNameLengthThe maximum length to be used for an index name.protected intmaxTableNameLengthThe maximum length to be used for a table name.static StringNONRESERVED_WORDSA string containing the list of SQL/92 non-reserved words, separated by commas.protected Set<String>reservedKeywordsThe set of reserved keywords for this datastore.static StringSQL2003_RESERVED_WORDSA string containing the list of SQL/2003 reserved words, separated by commas.static StringSQL92_RESERVED_WORDSA string containing the list of SQL/92 reserved words, separated by commas.static StringSQL99_RESERVED_WORDSA string containing the list of SQL/99 reserved words, separated by commas.protected Map<Integer,String>supportedJdbcTypesByIdprotected Collection<String>supportedOptionsSupported option names.protected Map<Integer,String>unsupportedJdbcTypesById- 
Fields inherited from interface org.datanucleus.store.rdbms.adapter.DatastoreAdapterACCESS_PARENTQUERY_IN_SUBQUERY_JOINED, ALTER_TABLE_DROP_CONSTRAINT_SYNTAX, ALTER_TABLE_DROP_FOREIGN_KEY_CONSTRAINT, ANSI_CROSSJOIN_SYNTAX, ANSI_JOIN_SYNTAX, BIT_IS_REALLY_BOOLEAN, BLOB_SET_USING_SETSTRING, BOOLEAN_COMPARISON, CATALOGS_IN_TABLE_DEFINITIONS, CHAR_COLUMNS_PADDED_WITH_SPACES, CHECK_IN_CREATE_STATEMENTS, CHECK_IN_END_CREATE_STATEMENTS, CLOB_SET_USING_SETSTRING, COLUMN_LENGTH_SEMANTICS, CREATE_INDEX_COLUMN_ORDERING, CREATE_INDEXES_BEFORE_FOREIGN_KEYS, CROSSJOIN_ASINNER11_SYNTAX, DATETIME_STORES_MILLISECS, DEFAULT_BEFORE_NULL_IN_COLUMN_OPTIONS, DEFAULT_KEYWORD_IN_COLUMN_OPTIONS, DEFAULT_KEYWORD_WITH_NOT_NULL_IN_COLUMN_OPTIONS, DEFERRED_CONSTRAINTS, DISTINCT_WITH_SELECT_FOR_UPDATE, ESCAPE_EXPRESSION_IN_LIKE_PREDICATE, EXISTS_SYNTAX, FK_DELETE_ACTION_CASCADE, FK_DELETE_ACTION_DEFAULT, FK_DELETE_ACTION_NULL, FK_DELETE_ACTION_RESTRICT, FK_IN_END_CREATE_STATEMENTS, FK_UPDATE_ACTION_CASCADE, FK_UPDATE_ACTION_DEFAULT, FK_UPDATE_ACTION_NULL, FK_UPDATE_ACTION_RESTRICT, GET_GENERATED_KEYS_STATEMENT, GROUP_BY_REQUIRES_ALL_SELECT_PRIMARIES, GROUPING_WITH_SELECT_FOR_UPDATE, HAVING_WITH_SELECT_FOR_UPDATE, HOLD_CURSORS_OVER_COMMIT, IDENTIFIERS_LOWERCASE, IDENTIFIERS_LOWERCASE_QUOTED, IDENTIFIERS_MIXEDCASE, IDENTIFIERS_MIXEDCASE_QUOTED, IDENTIFIERS_MIXEDCASE_QUOTED_SENSITIVE, IDENTIFIERS_MIXEDCASE_SENSITIVE, IDENTIFIERS_UPPERCASE, IDENTIFIERS_UPPERCASE_QUOTED, IDENTITY_COLUMN_TYPE_SPECIFICATION, IDENTITY_COLUMNS, IDENTITY_KEYS_NULL_SPECIFICATION, IDENTITY_PK_IN_CREATE_TABLE_COLUMN_DEF, INCLUDE_ORDERBY_COLS_IN_SELECT, LOCK_ROW_USING_OPTION_AFTER_FROM, LOCK_ROW_USING_OPTION_WITHIN_JOIN, LOCK_ROW_USING_SELECT_FOR_UPDATE, LOCK_ROW_USING_SELECT_FOR_UPDATE_NOWAIT, MULTITABLES_WITH_SELECT_FOR_UPDATE, NATIVE_ENUM_TYPE, NULL_EQUALS_EMPTY_STRING, NULLS_IN_CANDIDATE_KEYS, NULLS_KEYWORD_IN_COLUMN_OPTIONS, OPERATOR_BITWISE_AND, OPERATOR_BITWISE_OR, OPERATOR_BITWISE_XOR, ORDERBY_NULLS_DIRECTIVES, ORDERBY_NULLS_USING_CASE_NULL, ORDERBY_NULLS_USING_COLUMN_IS_NULL, ORDERBY_NULLS_USING_ISNULL, ORDERBY_USING_SELECT_COLUMN_INDEX, ORDERING_WITH_SELECT_FOR_UPDATE, PARAMETER_IN_CASE_IN_UPDATE_CLAUSE, PERSIST_OF_UNASSIGNED_CHAR, PRIMARYKEY_IN_CREATE_STATEMENTS, PROJECTION_IN_TABLE_REFERENCE_JOINS, RAW_PREFIX_LIKE_STATEMENTS, RESULTSET_TYPE_FORWARD_ONLY, RESULTSET_TYPE_SCROLL_INSENSITIVE, RESULTSET_TYPE_SCROLL_SENSITIVE, RIGHT_OUTER_JOIN, SCHEMAS_IN_TABLE_DEFINITIONS, SEQUENCES, SOME_ANY_ALL_SUBQUERY_EXPRESSIONS, STATEMENT_BATCHING, STORED_PROCEDURES, SUBQUERY_IN_HAVING, TX_ISOLATION_NONE, TX_ISOLATION_READ_COMMITTED, TX_ISOLATION_READ_UNCOMMITTED, TX_ISOLATION_REPEATABLE_READ, TX_ISOLATION_SERIALIZABLE, UNION_SYNTAX, UNIQUE_IN_END_CREATE_STATEMENTS, UPDATE_DELETE_STATEMENT_ALLOW_TABLE_ALIAS_IN_WHERE_CLAUSE, UPDATE_STATEMENT_ALLOW_TABLE_ALIAS_IN_SET_CLAUSE, USE_UNION_ALL, VALUE_GENERATION_UUID_STRING, VIEWS
 
- 
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedBaseDatastoreAdapter(DatabaseMetaData metadata)Constructs a database adapter based on the given JDBC metadata.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanaddSQLTypeForJDBCType(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn, short jdbcTypeNumber, SQLTypeInfo sqlType, boolean addIfNotPresent)Convenience method for use by adapters to add their own fake JDBC/SQL types in where the JDBC driver doesn't provide some type.voidderegisterColumnMappingsForJDBCType(String jdbcTypeName)Utility to deregister all datastore mappings for a JDBC type.longgetAdapterTime(Timestamp time)Utility to return the adapter time in case there are rounding issues with millisecs etc.StringgetAddCandidateKeyStatement(CandidateKey ck, IdentifierFactory factory)Returns the appropriate SQL to add a candidate key to its table.StringgetAddColumnStatement(Table table, Column col)Accessor for the SQL statement to add a column to a table.StringgetAddForeignKeyStatement(ForeignKey fk, IdentifierFactory factory)Returns the appropriate SQL to add a foreign key to its table.StringgetAddPrimaryKeyStatement(PrimaryKey pk, IdentifierFactory factory)Returns the appropriate SQL to add a primary key to its table.StringgetCatalogName(Connection conn)Accessor for the Catalog Name for this datastore.StringgetCatalogSeparator()Accessor for the catalog separator.StringgetCheckConstraintForValues(DatastoreIdentifier identifier, Object[] values, boolean nullable)Creates a CHECK constraint definition based on the given values e.g.Class<? extends ColumnMapping>getColumnMappingClass(String javaType, String jdbcType, String sqlType, org.datanucleus.ClassLoaderResolver clr, String fieldName)Accessor for a datastore mapping class for the specified java type (and optional jdbc-type or sql-type).ResultSetgetColumns(Connection conn, String catalog, String schema, String tableNamePattern, String columnNamePattern)Accessor for table and column information for a catalog/schema in this datastore.StringgetContinuationString()Continuation string to use where the SQL statement goes over more than 1 line.StringgetCreateDatabaseStatement(String catalogName, String schemaName)Method to return the statement necessary to create a database with this RDBMS.StringgetCreateIndexStatement(Index idx, IdentifierFactory factory)Returns the appropriate DDL to create an index.StringgetCreateTableStatement(TableImpl table, Column[] columns, Properties props, IdentifierFactory factory)Returns the appropriate SQL to create the given table having the given columns.StringgetDatastoreDateStatement()Accessor for a statement that will return the statement to use to get the datastore date.StringgetDatastoreDriverName()Accessor for the datastore driver name.StringgetDatastoreDriverVersion()Accessor for the datastore driver version.intgetDatastoreIdentifierMaxLength(IdentifierType identifierType)Method to return the maximum length of a datastore identifier of the specified type.StringgetDatastoreProductName()Accessor for the datastore product name.StringgetDatastoreProductVersion()Accessor for the datastore product version.StringgetDefaultSqlTypeForJavaType(String javaType, String jdbcType)Method to return the default sql-type for the specified java type (and JDBC type)StringgetDeleteTableStatement(SQLTable tbl)Method to return the basic SQL for a DELETE TABLE statement.intgetDriverMajorVersion()Accessor for the JDBC driver major versionintgetDriverMinorVersion()Accessor for the JDBC driver minor versionStringgetDropDatabaseStatement(String catalogName, String schemaName)Method to return the statement necessary to drop a database with this RDBMS.StringgetDropTableStatement(Table table)Returns the appropriate SQL to drop the given table.StringgetDropViewStatement(ViewImpl view)Returns the appropriate SQL to drop the given view.StringgetEscapeCharacter()The character for escaping characters in pattern expressions.StringgetEscapePatternExpression()The character for escaping characters in pattern expressions.ResultSetgetExistingIndexes(Connection conn, String catalog, String schema, String table)Provide the existing indexes in the database for the table.StringgetIdentifierQuoteString()Accessor for an identifier quote string.ClassgetIdentityJavaTypeForType(Class type)Return the java type that represents any identity (autoincrement) column value.StringgetIdentityKeyword(org.datanucleus.store.StoreManager storeMgr)Accessor for the autoincrementing keyword for generating DDLs (CREATE TABLEs...).StringgetIdentityLastValueStmt(Table table, String columnName)Accessor for the autoincrementing sql statement for this datastore.StringgetInsertStatementForNoColumns(Table table)Method to return the INSERT statement to use when inserting into a table that has no columns specified.intgetJDBCTypeForName(String typeName)Method to return the type given the "jdbc-type" name.MappingManagergetMappingManager(RDBMSStoreManager storeMgr)Accessor for a MappingManager suitable for use with this datastore adapter.intgetMaxForeignKeys()Accessor for the maximum foreign keys by table permitted for this datastore.intgetMaxIndexes()Accessor for the maximum indexes by schema permitted for this datastore.protected intgetMiliseconds(long nanos)StringgetNameForJDBCType(int jdbcType)Return a name for a JDBC Types value.StringgetNewUUIDFunction()The function to creates a unique value of type uniqueidentifier.StringgetNumericConversionFunction()Accessor for the function to use for converting to numeric.StringgetOrderString(org.datanucleus.store.StoreManager storeMgr, String orderString, SQLExpression sqlExpr)Convenience method to allow adaption of an ordering string before applying it.StringgetPatternExpressionAnyCharacter()The pattern string for representing one character that is expanded in word searches.StringgetPatternExpressionZeroMoreCharacters()The pattern string for representing zero or more characters that is expanded in word searches.StringgetPreferredDefaultSQLTypeForJDBCType(org.datanucleus.metadata.JdbcType jdbcType)Way for a DatastoreAdapter to specify a preferred default SQL type for a JDBC type (when there are multiple).StringgetRangeByLimitEndOfStatementClause(long offset, long count, boolean hasOrdering)Method to return the SQL to append to the end of the SELECT statement to handle restriction of ranges using the LIMIT keyword.StringgetRangeByRowNumberColumn()Method to return the column name to use when handling ranges via a row-number on the select using the original method (DB2).StringgetRangeByRowNumberColumn2()Method to return the column name to use when handling ranges via a rownumber on the select using the second method (Oracle).intgetRequiredTransactionIsolationLevel()Accessor for the "required" transaction isolation level if it has to be a certain value for this adapter.Set<String>getReservedWords()Accessor for the reserved words constructed from the method DataBaseMetaData.getSQLKeywords + standard SQL reserved wordsStringgetSchemaName(Connection conn)Accessor for the Schema Name for this datastore.StringgetSelectForUpdateText()Method returning the text to append to the end of the SELECT to perform the equivalent of "SELECT ...StringgetSelectNewUUIDStmt()The function to creates a unique value of type uniqueidentifier.StringgetSelectWithLockOption()The option to specify in "SELECT ...StringgetSequenceCreateStmt(String sequence_name, Integer min, Integer max, Integer start, Integer increment, Integer cache_size)Accessor for the sequence create statement for this datastore.StringgetSequenceNextStmt(String sequence_name)Accessor for the sequence statement to get the next id for this datastore.ClassgetSQLMethodClass(String className, String methodName, org.datanucleus.ClassLoaderResolver clr)Accessor for the SQLMethod class for the query invocation of specified class + method name (if available for this datastore).ClassgetSQLOperationClass(String operationName)Accessor for the SQLOperation class for the specified operation (if available for this datastore).protected Collection<SQLTypeInfo>getSQLTypeInfoForJdbcType(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn, short jdbcTypeNumber)Accessor for the SQLType info for the specified JDBC type and the SQL type name.Collection<String>getSupportedOptions()Accessor for the options that are supported by this datastore adapter and the underlying datastore.StringgetSurrogateForEmptyStrings()Some databases, Oracle, treats an empty string (0 length) equals nullprotected longgetTime(long time, long nanos)intgetTransactionIsolationForSchemaCreation()Accessor for the transaction isolation level to use during schema creation.intgetUnlimitedLengthPrecisionValue(SQLTypeInfo typeInfo)Returns the precision value to be used when creating string columns of "unlimited" length.SQLTextgetUpdateTableStatement(SQLTable tbl, SQLText setSQL)Method to return the SQLText for an UPDATE TABLE statement.StringgetVendorID()Accessor for the Vendor ID for this datastore.voidinitialise(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)Initialise the datastore adapter.voidinitialiseDatastore(Connection conn)Creates the auxiliary functions/procedures in the schemavoidinitialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)Initialise the types for this datastore.booleanisIdentityFieldDataType(String typeName)Verifies if the giventypeNameis auto incremented by the datastore.booleanisReservedKeyword(String word)Tests if a given string is an SQL keyword.booleanisStatementCancel(SQLException sqle)return whether this exception represents a cancelled statement.booleanisStatementTimeout(SQLException sqle)return whether this exception represents a timed out statement.booleanisValidPrimaryKeyType(org.datanucleus.metadata.JdbcType datatype)Method to return whether the specified JDBC type is valid for use in a PrimaryKey.protected voidloadColumnMappings(org.datanucleus.plugin.PluginManager pluginMgr, org.datanucleus.ClassLoaderResolver clr)Load all column mappings defined in the associated plugins via the plugin mechanism.ForeignKeyInfonewFKInfo(ResultSet rs)Method to return ForeignKeyInfo for the current row of the ResultSet which will have been obtained from a call to DatabaseMetaData.getImportedKeys() or DatabaseMetaData.getExportedKeys().RDBMSColumnInfonewRDBMSColumnInfo(ResultSet rs)Create a new column info from the current row of the passed ResultSet.SQLTypeInfonewSQLTypeInfo(ResultSet rs)Create a new SQL type info from the current row of the passed ResultSet.voidregisterColumnMapping(String javaTypeName, Class<? extends ColumnMapping> columnMappingType, String jdbcType, String sqlType, boolean dflt)Method to register a column mapping for a specified java type, and against particular JDBC/SQL type.voidregisterColumnMapping(String javaTypeName, Class<? extends ColumnMapping> columnMappingType, JDBCType jdbcType, String sqlType, boolean dflt)booleansequenceExists(Connection conn, String catalogName, String schemaName, String seqName)Convenience method to return whether the specified sequence already exists.booleansupportsOption(String option)Accessor for whether the supplied option is supported.booleansupportsQueryFetchSize(int size)Whether the datastore will support setting the query fetch size to the supplied value.booleansupportsTransactionIsolation(int level)Accessor for whether this database adapter supports the specified transaction isolation.StringtoString()Method to return this object as a string.booleanvalidToIndexMapping(JavaTypeMapping mapping)Method to return whether the specified mapping is indexable.booleanvalidToSelectMappingInStatement(SelectStatement stmt, JavaTypeMapping m)Method to return if it is valid to select the specified mapping for the specified statement for this datastore adapter.
 
- 
- 
- 
Field Detail- 
MAX_IDENTIFIER_LENGTHpublic static final int MAX_IDENTIFIER_LENGTH The maximum length of a SQL/92 identifier in characters.- See Also:
- Constant Field Values
 
 - 
SQL92_RESERVED_WORDSpublic static final String SQL92_RESERVED_WORDS A string containing the list of SQL/92 reserved words, separated by commas.- See Also:
- Constant Field Values
 
 - 
SQL99_RESERVED_WORDSpublic static final String SQL99_RESERVED_WORDS A string containing the list of SQL/99 reserved words, separated by commas.- See Also:
- Constant Field Values
 
 - 
SQL2003_RESERVED_WORDSpublic static final String SQL2003_RESERVED_WORDS A string containing the list of SQL/2003 reserved words, separated by commas.- See Also:
- Constant Field Values
 
 - 
NONRESERVED_WORDSpublic static final String NONRESERVED_WORDS A string containing the list of SQL/92 non-reserved words, separated by commas.- See Also:
- Constant Field Values
 
 - 
reservedKeywordsprotected final Set<String> reservedKeywords The set of reserved keywords for this datastore.
 - 
datastoreProductNameprotected String datastoreProductName The product name of the underlying datastore.
 - 
datastoreProductVersionprotected String datastoreProductVersion The version number of the underlying datastore as a string.
 - 
datastoreMajorVersionprotected int datastoreMajorVersion The major version number of the underlying datastore.
 - 
datastoreMinorVersionprotected int datastoreMinorVersion The minor version number of the underlying datastore.
 - 
datastoreRevisionVersionprotected int datastoreRevisionVersion The revision version number of the underlying datastore.
 - 
identifierQuoteStringprotected String identifierQuoteString The String used to quote identifiers.
 - 
supportedOptionsprotected Collection<String> supportedOptions Supported option names.
 - 
driverNameprotected String driverName the JDBC driver name
 - 
driverVersionprotected String driverVersion the JDBC driver version
 - 
driverMajorVersionprotected int driverMajorVersion The major version number of the underlying driver.
 - 
driverMinorVersionprotected int driverMinorVersion The minor version number of the underlying driver.
 - 
maxTableNameLengthprotected int maxTableNameLength The maximum length to be used for a table name.
 - 
maxConstraintNameLengthprotected int maxConstraintNameLength The maximum length to be used for a table constraint name.
 - 
maxIndexNameLengthprotected int maxIndexNameLength The maximum length to be used for an index name.
 - 
maxColumnNameLengthprotected int maxColumnNameLength The maximum length to be used for a column name.
 - 
catalogSeparatorprotected String catalogSeparator The String used to separate catalog and table name.
 
- 
 - 
Constructor Detail- 
BaseDatastoreAdapterprotected BaseDatastoreAdapter(DatabaseMetaData metadata) Constructs a database adapter based on the given JDBC metadata.- Parameters:
- metadata- the database metadata.
 
 
- 
 - 
Method Detail- 
initialisepublic void initialise(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)Description copied from interface:DatastoreAdapterInitialise the datastore adapter.- Specified by:
- initialisein interface- DatastoreAdapter
- Parameters:
- handler- SchemaHandler that we initialise the types for
- mconn- Managed connection to use
 
 - 
initialiseTypespublic void initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)Initialise the types for this datastore.- Specified by:
- initialiseTypesin interface- DatastoreAdapter
- Parameters:
- handler- SchemaHandler that we initialise the types for
- mconn- Managed connection to use
 
 - 
initialiseDatastorepublic void initialiseDatastore(Connection conn) Creates the auxiliary functions/procedures in the schema- Specified by:
- initialiseDatastorein interface- DatastoreAdapter
- Parameters:
- conn- the connection to the datastore
 
 - 
getPreferredDefaultSQLTypeForJDBCTypepublic String getPreferredDefaultSQLTypeForJDBCType(org.datanucleus.metadata.JdbcType jdbcType) Description copied from interface:DatastoreAdapterWay for a DatastoreAdapter to specify a preferred default SQL type for a JDBC type (when there are multiple).- Specified by:
- getPreferredDefaultSQLTypeForJDBCTypein interface- DatastoreAdapter
- Parameters:
- jdbcType- The JDBC type
- Returns:
- The SQL type preferred
 
 - 
getNameForJDBCTypepublic String getNameForJDBCType(int jdbcType) Description copied from interface:DatastoreAdapterReturn a name for a JDBC Types value.- Specified by:
- getNameForJDBCTypein interface- DatastoreAdapter
- Parameters:
- jdbcType- The jdbc type
- Returns:
- The name
 
 - 
getJDBCTypeForNamepublic int getJDBCTypeForName(String typeName) Description copied from interface:DatastoreAdapterMethod to return the type given the "jdbc-type" name.- Specified by:
- getJDBCTypeForNamein interface- DatastoreAdapter
- Parameters:
- typeName- "jdbc-type" name
- Returns:
- Whether it is valid
 
 - 
getSQLTypeInfoForJdbcTypeprotected Collection<SQLTypeInfo> getSQLTypeInfoForJdbcType(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn, short jdbcTypeNumber) Accessor for the SQLType info for the specified JDBC type and the SQL type name.- Parameters:
- handler- Schema handler
- mconn- Connection
- jdbcTypeNumber- JDBC type
- Returns:
- The SQL type info
 
 - 
addSQLTypeForJDBCTypeprotected boolean addSQLTypeForJDBCType(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn, short jdbcTypeNumber, SQLTypeInfo sqlType, boolean addIfNotPresent)Convenience method for use by adapters to add their own fake JDBC/SQL types in where the JDBC driver doesn't provide some type.- Parameters:
- handler- the schema handler managing the types
- mconn- Connection to use
- jdbcTypeNumber- The JDBC type
- sqlType- The type info to use
- addIfNotPresent- whether to add only if JDBC type not present
- Returns:
- Whether the SQL type for JDBC type was added
 
 - 
supportsTransactionIsolationpublic boolean supportsTransactionIsolation(int level) Accessor for whether this database adapter supports the specified transaction isolation.- Specified by:
- supportsTransactionIsolationin interface- DatastoreAdapter
- Parameters:
- level- The isolation level (as defined by Connection enums).
- Returns:
- Whether it is supported.
 
 - 
getSupportedOptionspublic Collection<String> getSupportedOptions() Accessor for the options that are supported by this datastore adapter and the underlying datastore.- Specified by:
- getSupportedOptionsin interface- DatastoreAdapter
- Returns:
- The options (Collection<String>)
 
 - 
supportsOptionpublic boolean supportsOption(String option) Accessor for whether the supplied option is supported.- Specified by:
- supportsOptionin interface- DatastoreAdapter
- Parameters:
- option- The option
- Returns:
- Whether supported.
 
 - 
getMappingManagerpublic MappingManager getMappingManager(RDBMSStoreManager storeMgr) Accessor for a MappingManager suitable for use with this datastore adapter.- Specified by:
- getMappingManagerin interface- DatastoreAdapter
- Parameters:
- storeMgr- The StoreManager
- Returns:
- the MappingManager
 
 - 
getAdapterTimepublic long getAdapterTime(Timestamp time) Description copied from interface:DatastoreAdapterUtility to return the adapter time in case there are rounding issues with millisecs etc.- Specified by:
- getAdapterTimein interface- DatastoreAdapter
- Parameters:
- time- The timestamp
- Returns:
- The time in millisecs
 
 - 
getTimeprotected long getTime(long time, long nanos)
 - 
getMilisecondsprotected int getMiliseconds(long nanos) 
 - 
getDatastoreProductNamepublic String getDatastoreProductName() Description copied from interface:DatastoreAdapterAccessor for the datastore product name.- Specified by:
- getDatastoreProductNamein interface- DatastoreAdapter
- Returns:
- product name
 
 - 
getDatastoreProductVersionpublic String getDatastoreProductVersion() Description copied from interface:DatastoreAdapterAccessor for the datastore product version.- Specified by:
- getDatastoreProductVersionin interface- DatastoreAdapter
- Returns:
- product version
 
 - 
getDatastoreDriverNamepublic String getDatastoreDriverName() Description copied from interface:DatastoreAdapterAccessor for the datastore driver name.- Specified by:
- getDatastoreDriverNamein interface- DatastoreAdapter
- Returns:
- product name
 
 - 
getDatastoreDriverVersionpublic String getDatastoreDriverVersion() Description copied from interface:DatastoreAdapterAccessor for the datastore driver version.- Specified by:
- getDatastoreDriverVersionin interface- DatastoreAdapter
- Returns:
- driver version
 
 - 
supportsQueryFetchSizepublic boolean supportsQueryFetchSize(int size) Whether the datastore will support setting the query fetch size to the supplied value.- Specified by:
- supportsQueryFetchSizein interface- DatastoreAdapter
- Parameters:
- size- The value to set to
- Returns:
- Whether it is supported.
 
 - 
getVendorIDpublic String getVendorID() Description copied from interface:DatastoreAdapterAccessor for the Vendor ID for this datastore.- Specified by:
- getVendorIDin interface- DatastoreAdapter
- Returns:
- Vendor id for this datastore
 
 - 
isReservedKeywordpublic boolean isReservedKeyword(String word) Tests if a given string is an SQL keyword.The list of key words tested against is defined to contain all SQL/92 keywords, plus any additional key words reported by the JDBC driver for this adapter via DatabaseMetaData.getSQLKeywords().In general, use of a SQL key word as an identifier should be avoided. SQL/92 key words are divided into reserved and non-reserved words. If a reserved word is used as an identifier it must be quoted with double quotes. Strictly speaking, the same is not true of non-reserved words. However, as C.J. Date writes in A Guide To The SQL Standard : The rule by which it is determined within the standard that one key word needs to be reserved while another need not is not clear to this writer. In practice, it is probably wise to treat all key words as reserved. - Specified by:
- isReservedKeywordin interface- DatastoreAdapter
- Parameters:
- word- The word to test.
- Returns:
- trueif word is a SQL key word for this DBMS. The comparison is case-insensitive.
 
 - 
getIdentifierQuoteStringpublic String getIdentifierQuoteString() Accessor for an identifier quote string.- Specified by:
- getIdentifierQuoteStringin interface- DatastoreAdapter
- Returns:
- Identifier quote string.
 
 - 
getDriverMajorVersionpublic int getDriverMajorVersion() Accessor for the JDBC driver major version- Specified by:
- getDriverMajorVersionin interface- DatastoreAdapter
- Returns:
- The driver major version
 
 - 
getDriverMinorVersionpublic int getDriverMinorVersion() Accessor for the JDBC driver minor version- Specified by:
- getDriverMinorVersionin interface- DatastoreAdapter
- Returns:
- The driver minor version
 
 - 
getDatastoreIdentifierMaxLengthpublic int getDatastoreIdentifierMaxLength(IdentifierType identifierType) Method to return the maximum length of a datastore identifier of the specified type. If no limit exists then returns -1- Specified by:
- getDatastoreIdentifierMaxLengthin interface- DatastoreAdapter
- Parameters:
- identifierType- Type of identifier (see IdentifierFactory.TABLE, etc)
- Returns:
- The max permitted length of this type of identifier
 
 - 
getMaxForeignKeyspublic int getMaxForeignKeys() Accessor for the maximum foreign keys by table permitted for this datastore.- Specified by:
- getMaxForeignKeysin interface- DatastoreAdapter
- Returns:
- Max number of FKs for a table
 
 - 
getMaxIndexespublic int getMaxIndexes() Accessor for the maximum indexes by schema permitted for this datastore.- Specified by:
- getMaxIndexesin interface- DatastoreAdapter
- Returns:
- Max number of indexes for a table
 
 - 
getReservedWordspublic Set<String> getReservedWords() Accessor for the reserved words constructed from the method DataBaseMetaData.getSQLKeywords + standard SQL reserved words- Specified by:
- getReservedWordsin interface- DatastoreAdapter
- Returns:
- Set of reserved words
 
 - 
newRDBMSColumnInfopublic RDBMSColumnInfo newRDBMSColumnInfo(ResultSet rs) Description copied from interface:DatastoreAdapterCreate a new column info from the current row of the passed ResultSet. Allows an adapter to override particular column information where the JDBC driver is known to be buggy.- Specified by:
- newRDBMSColumnInfoin interface- DatastoreAdapter
- Parameters:
- rs- Result Set
- Returns:
- The column info
 
 - 
newSQLTypeInfopublic SQLTypeInfo newSQLTypeInfo(ResultSet rs) Description copied from interface:DatastoreAdapterCreate a new SQL type info from the current row of the passed ResultSet. Allows an adapter to override particular types where the JDBC driver is known to be buggy.- Specified by:
- newSQLTypeInfoin interface- DatastoreAdapter
- Parameters:
- rs- ResultSet
- Returns:
- The SQL type info
 
 - 
newFKInfopublic ForeignKeyInfo newFKInfo(ResultSet rs) Method to return ForeignKeyInfo for the current row of the ResultSet which will have been obtained from a call to DatabaseMetaData.getImportedKeys() or DatabaseMetaData.getExportedKeys().- Specified by:
- newFKInfoin interface- DatastoreAdapter
- Parameters:
- rs- The result set returned from DatabaseMetaData.get??portedKeys()
- Returns:
- The foreign key info
 
 - 
getUnlimitedLengthPrecisionValuepublic int getUnlimitedLengthPrecisionValue(SQLTypeInfo typeInfo) Returns the precision value to be used when creating string columns of "unlimited" length. Usually, if this value is needed it is provided in. However, for some types in some databases the value must be computed.- Specified by:
- getUnlimitedLengthPrecisionValuein interface- DatastoreAdapter
- Parameters:
- typeInfo- the typeInfo object for which the precision value is needed.
- Returns:
- the precision value to be used when creating the column, or -1 if no value should be used.
 
 - 
isValidPrimaryKeyTypepublic boolean isValidPrimaryKeyType(org.datanucleus.metadata.JdbcType datatype) Method to return whether the specified JDBC type is valid for use in a PrimaryKey.- Specified by:
- isValidPrimaryKeyTypein interface- DatastoreAdapter
- Parameters:
- datatype- The JDBC type.
- Returns:
- Whether it is valid for use in the PK
 
 - 
getSurrogateForEmptyStringspublic String getSurrogateForEmptyStrings() Some databases, Oracle, treats an empty string (0 length) equals null- Specified by:
- getSurrogateForEmptyStringsin interface- DatastoreAdapter
- Returns:
- returns a surrogate to replace the empty string in the database otherwise it would be treated as null
 
 - 
getTransactionIsolationForSchemaCreationpublic int getTransactionIsolationForSchemaCreation() Accessor for the transaction isolation level to use during schema creation.- Specified by:
- getTransactionIsolationForSchemaCreationin interface- DatastoreAdapter
- Returns:
- The transaction isolation level for schema generation process
 
 - 
getRequiredTransactionIsolationLevelpublic int getRequiredTransactionIsolationLevel() Accessor for the "required" transaction isolation level if it has to be a certain value for this adapter.- Specified by:
- getRequiredTransactionIsolationLevelin interface- DatastoreAdapter
- Returns:
- Transaction isolation level (-1 implies no restriction)
 
 - 
getCatalogNamepublic String getCatalogName(Connection conn) throws SQLException Accessor for the Catalog Name for this datastore.- Specified by:
- getCatalogNamein interface- DatastoreAdapter
- Parameters:
- conn- Connection to the datastore
- Returns:
- The catalog name
- Throws:
- SQLException- Thrown if error occurs in determining the catalog name.
 
 - 
getSchemaNamepublic String getSchemaName(Connection conn) throws SQLException Accessor for the Schema Name for this datastore.- Specified by:
- getSchemaNamein interface- DatastoreAdapter
- Parameters:
- conn- Connection to the datastore
- Returns:
- The schema name
- Throws:
- SQLException- Thrown if error occurs in determining the schema name.
 
 - 
getCatalogSeparatorpublic String getCatalogSeparator() Accessor for the catalog separator.- Specified by:
- getCatalogSeparatorin interface- DatastoreAdapter
- Returns:
- Catalog separator string.
 
 - 
getSelectWithLockOptionpublic String getSelectWithLockOption() The option to specify in "SELECT ... FROM TABLE ... WITH (option)" to lock instances Returns null if not supported.- Specified by:
- getSelectWithLockOptionin interface- DatastoreAdapter
- Returns:
- The option to specify with "SELECT ... FROM TABLE ... WITH (option)"
 
 - 
getSelectForUpdateTextpublic String getSelectForUpdateText() Method returning the text to append to the end of the SELECT to perform the equivalent of "SELECT ... FOR UPDATE" (on some RDBMS). This method means that we can have different text with some datastores (e.g Derby).- Specified by:
- getSelectForUpdateTextin interface- DatastoreAdapter
- Returns:
- The "FOR UPDATE" text
 
 - 
getSelectNewUUIDStmtpublic String getSelectNewUUIDStmt() The function to creates a unique value of type uniqueidentifier.- Specified by:
- getSelectNewUUIDStmtin interface- DatastoreAdapter
- Returns:
- The function. e.g. "SELECT NEWID()"
 
 - 
getNewUUIDFunctionpublic String getNewUUIDFunction() The function to creates a unique value of type uniqueidentifier.- Returns:
- The function. e.g. "NEWID()"
 
 - 
getOrderStringpublic String getOrderString(org.datanucleus.store.StoreManager storeMgr, String orderString, SQLExpression sqlExpr) Convenience method to allow adaption of an ordering string before applying it. This is useful where the datastore accepts some conversion adapter around the ordering column for example.- Specified by:
- getOrderStringin interface- DatastoreAdapter
- Parameters:
- storeMgr- StoreManager
- orderString- The basic ordering string
- sqlExpr- The sql expression being represented here
- Returns:
- The adapted ordering string
 
 - 
validToSelectMappingInStatementpublic boolean validToSelectMappingInStatement(SelectStatement stmt, JavaTypeMapping m) Method to return if it is valid to select the specified mapping for the specified statement for this datastore adapter. Sometimes, dependent on the type of the column(s), and what other components are present in the statement, it may be invalid to select the mapping. This implementation returns true, so override in database-specific subclass as required.- Specified by:
- validToSelectMappingInStatementin interface- DatastoreAdapter
- Parameters:
- stmt- The statement
- m- The mapping that we want to select
- Returns:
- Whether it is valid
 
 - 
getIdentityLastValueStmtpublic String getIdentityLastValueStmt(Table table, String columnName) Accessor for the autoincrementing sql statement for this datastore.- Specified by:
- getIdentityLastValueStmtin interface- DatastoreAdapter
- Parameters:
- table- Name of the table that the autoincrement is for
- columnName- Name of the column that the autoincrement is for
- Returns:
- The statement for getting the latest autoincremented key
 
 - 
getIdentityKeywordpublic String getIdentityKeyword(org.datanucleus.store.StoreManager storeMgr) Accessor for the autoincrementing keyword for generating DDLs (CREATE TABLEs...).- Specified by:
- getIdentityKeywordin interface- DatastoreAdapter
- Parameters:
- storeMgr- The Store Manager
- Returns:
- The keyword for a column using autoincrement
 
 - 
getIdentityJavaTypeForTypepublic Class getIdentityJavaTypeForType(Class type) Description copied from interface:DatastoreAdapterReturn the java type that represents any identity (autoincrement) column value.- Specified by:
- getIdentityJavaTypeForTypein interface- DatastoreAdapter
- Parameters:
- type- The type of the member mapping to an IDENTITY column
- Returns:
- The type that should be used in generating the column
 
 - 
isIdentityFieldDataTypepublic boolean isIdentityFieldDataType(String typeName) Verifies if the giventypeNameis auto incremented by the datastore.- Specified by:
- isIdentityFieldDataTypein interface- DatastoreAdapter
- Parameters:
- typeName- the datastore type name
- Returns:
- true when the typeNamehas values auto incremented by the datastore
 
 - 
getInsertStatementForNoColumnspublic String getInsertStatementForNoColumns(Table table) Method to return the INSERT statement to use when inserting into a table that has no columns specified. This is the case when we have a single column in the table and that column is autoincrement/identity (and so is assigned automatically in the datastore).- Specified by:
- getInsertStatementForNoColumnsin interface- DatastoreAdapter
- Parameters:
- table- The table
- Returns:
- The statement for the INSERT
 
 - 
sequenceExistspublic boolean sequenceExists(Connection conn, String catalogName, String schemaName, String seqName) Description copied from interface:DatastoreAdapterConvenience method to return whether the specified sequence already exists.- Specified by:
- sequenceExistsin interface- DatastoreAdapter
- Parameters:
- conn- Connection to use for checking
- catalogName- Catalog name
- schemaName- Schema name
- seqName- Name of the sequence
- Returns:
- Whether it exists
 
 - 
getSequenceCreateStmtpublic String getSequenceCreateStmt(String sequence_name, Integer min, Integer max, Integer start, Integer increment, Integer cache_size) Accessor for the sequence create statement for this datastore.- Specified by:
- getSequenceCreateStmtin interface- DatastoreAdapter
- Parameters:
- sequence_name- Name of the sequence
- min- Minimum value for the sequence
- max- Maximum value for the sequence
- start- Start value for the sequence
- increment- Increment value for the sequence
- cache_size- Cache size for the sequence
- Returns:
- The statement for getting the next id from the sequence
 
 - 
getSequenceNextStmtpublic String getSequenceNextStmt(String sequence_name) Accessor for the sequence statement to get the next id for this datastore.- Specified by:
- getSequenceNextStmtin interface- DatastoreAdapter
- Parameters:
- sequence_name- Name of the sequence
- Returns:
- The statement for getting the next id for the sequence
 
 - 
getExistingIndexespublic ResultSet getExistingIndexes(Connection conn, String catalog, String schema, String table) throws SQLException Provide the existing indexes in the database for the table. This is implemented if and only if the datastore has its own way of getting indexes. Otherwise we will use DatabaseMetaData.getIndexInfo(). The implementation here returns null.- Specified by:
- getExistingIndexesin interface- DatastoreAdapter
- Parameters:
- conn- the JDBC connection
- catalog- the catalog name
- schema- the schema name
- table- the table name
- Returns:
- a ResultSet with the format @see DatabaseMetaData#getIndexInfo(java.lang.String, java.lang.String, java.lang.String, boolean, boolean)
- Throws:
- SQLException- if an error occurs
 
 - 
getCreateTableStatementpublic String getCreateTableStatement(TableImpl table, Column[] columns, Properties props, IdentifierFactory factory) Returns the appropriate SQL to create the given table having the given columns. No column constraints or key definitions should be included. It should return something like:CREATE TABLE FOO ( BAR VARCHAR(30), BAZ INTEGER ) - Specified by:
- getCreateTableStatementin interface- DatastoreAdapter
- Parameters:
- table- The table to create.
- columns- The columns of the table.
- props- Properties for controlling the table creation
- factory- Factory for identifiers
- Returns:
- The text of the SQL statement.
 
 - 
getAddPrimaryKeyStatementpublic String getAddPrimaryKeyStatement(PrimaryKey pk, IdentifierFactory factory) Returns the appropriate SQL to add a primary key to its table. It should return something like:ALTER TABLE FOO ADD [CONSTRAINT FOO_PK ]PRIMARY KEY (BAR) - Specified by:
- getAddPrimaryKeyStatementin interface- DatastoreAdapter
- Parameters:
- pk- An object describing the primary key.
- factory- Identifier factory
- Returns:
- The text of the SQL statement.
 
 - 
getAddCandidateKeyStatementpublic String getAddCandidateKeyStatement(CandidateKey ck, IdentifierFactory factory) Returns the appropriate SQL to add a candidate key to its table. It should return something like:ALTER TABLE FOO ADD [CONSTRAINT FOO_CK ]UNIQUE (BAZ) - Specified by:
- getAddCandidateKeyStatementin interface- DatastoreAdapter
- Parameters:
- ck- An object describing the candidate key.
- factory- Identifier factory
- Returns:
- The text of the SQL statement.
 
 - 
getAddForeignKeyStatementpublic String getAddForeignKeyStatement(ForeignKey fk, IdentifierFactory factory) Returns the appropriate SQL to add a foreign key to its table. It should return something like:ALTER TABLE FOO ADD [CONSTRAINT FOO_FK1 ]FOREIGN KEY (BAR, BAZ) REFERENCES ABC (COL1, COL2) - Specified by:
- getAddForeignKeyStatementin interface- DatastoreAdapter
- Parameters:
- fk- An object describing the foreign key.
- factory- Identifier factory
- Returns:
- The text of the SQL statement.
 
 - 
getAddColumnStatementpublic String getAddColumnStatement(Table table, Column col) Accessor for the SQL statement to add a column to a table.- Specified by:
- getAddColumnStatementin interface- DatastoreAdapter
- Parameters:
- table- The table
- col- The column
- Returns:
- The SQL necessary to add the column
 
 - 
getCreateIndexStatementpublic String getCreateIndexStatement(Index idx, IdentifierFactory factory) Returns the appropriate DDL to create an index. It should return something like:CREATE [UNIQUE ]INDEX FOO_U1 ON FOO (BAR,BAZ) [Extended Settings] - Specified by:
- getCreateIndexStatementin interface- DatastoreAdapter
- Parameters:
- idx- An object describing the index.
- factory- Identifier factory
- Returns:
- The text of the SQL statement.
 
 - 
getCheckConstraintForValuespublic String getCheckConstraintForValues(DatastoreIdentifier identifier, Object[] values, boolean nullable) Creates a CHECK constraint definition based on the given values e.g.CHECK ("COLUMN" IN ('VAL1','VAL2') OR "COLUMN" IS NULL)- Specified by:
- getCheckConstraintForValuesin interface- DatastoreAdapter
- Parameters:
- identifier- Column identifier
- values- Valid values
- nullable- whether the datastore identifier is null
- Returns:
- The check constraint
 
 - 
getCreateDatabaseStatementpublic String getCreateDatabaseStatement(String catalogName, String schemaName) Description copied from interface:DatastoreAdapterMethod to return the statement necessary to create a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
- getCreateDatabaseStatementin interface- DatastoreAdapter
- Parameters:
- catalogName- name of the catalog
- schemaName- Name of the schema
- Returns:
- The DDL statement
 
 - 
getDropDatabaseStatementpublic String getDropDatabaseStatement(String catalogName, String schemaName) Description copied from interface:DatastoreAdapterMethod to return the statement necessary to drop a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
- getDropDatabaseStatementin interface- DatastoreAdapter
- Parameters:
- catalogName- Name of the catalog
- schemaName- Name of the schema
- Returns:
- The DDL statement
 
 - 
getDropTableStatementpublic String getDropTableStatement(Table table) Returns the appropriate SQL to drop the given table. It should return something like:DROP TABLE FOO CASCADE - Specified by:
- getDropTableStatementin interface- DatastoreAdapter
- Parameters:
- table- The table to drop.
- Returns:
- The text of the SQL statement.
 
 - 
getDropViewStatementpublic String getDropViewStatement(ViewImpl view) Returns the appropriate SQL to drop the given view. It should return something like:DROP VIEW FOO - Specified by:
- getDropViewStatementin interface- DatastoreAdapter
- Parameters:
- view- The view to drop.
- Returns:
- The text of the SQL statement.
 
 - 
getDeleteTableStatementpublic String getDeleteTableStatement(SQLTable tbl) Method to return the basic SQL for a DELETE TABLE statement. Returns the String asDELETE FROM tbl t1. Doesn't include any where clause.- Specified by:
- getDeleteTableStatementin interface- DatastoreAdapter
- Parameters:
- tbl- The SQLTable to delete
- Returns:
- The delete table string
 
 - 
getUpdateTableStatementpublic SQLText getUpdateTableStatement(SQLTable tbl, SQLText setSQL) Method to return the SQLText for an UPDATE TABLE statement. Returns the SQLText forUPDATE tbl t1 SET x1 = val1, x2 = val2. Override if the datastore doesn't support that standard syntax.- Specified by:
- getUpdateTableStatementin interface- DatastoreAdapter
- Parameters:
- tbl- The primary table
- setSQL- The SQLText for the SET component
- Returns:
- SQLText for the update statement
 
 - 
getRangeByLimitEndOfStatementClausepublic String getRangeByLimitEndOfStatementClause(long offset, long count, boolean hasOrdering) Method to return the SQL to append to the end of the SELECT statement to handle restriction of ranges using the LIMIT keyword. Defaults to an empty string (not supported).SELECT param ... WHERE {LIMIT}- Specified by:
- getRangeByLimitEndOfStatementClausein interface- DatastoreAdapter
- Parameters:
- offset- The offset to return from
- count- The number of items to return
- hasOrdering- Whether there is ordering present
- Returns:
- The SQL to append to allow for ranges using LIMIT.
 
 - 
getRangeByRowNumberColumnpublic String getRangeByRowNumberColumn() Method to return the column name to use when handling ranges via a row-number on the select using the original method (DB2). Defaults to an empty string (not supported).- Specified by:
- getRangeByRowNumberColumnin interface- DatastoreAdapter
- Returns:
- The row number column.
 
 - 
getRangeByRowNumberColumn2public String getRangeByRowNumberColumn2() Method to return the column name to use when handling ranges via a rownumber on the select using the second method (Oracle). Defaults to an empty string (not supported).- Specified by:
- getRangeByRowNumberColumn2in interface- DatastoreAdapter
- Returns:
- The row number column.
 
 - 
getColumnspublic ResultSet getColumns(Connection conn, String catalog, String schema, String tableNamePattern, String columnNamePattern) throws SQLException Accessor for table and column information for a catalog/schema in this datastore.- Specified by:
- getColumnsin interface- DatastoreAdapter
- Parameters:
- conn- Connection to use
- catalog- The catalog (null if none)
- schema- The schema (null if none)
- tableNamePattern- The table name pattern (null if all)
- columnNamePattern- The column name pattern (null if all)
- Returns:
- ResultSet containing the table/column information
- Throws:
- SQLException- Thrown if an error occurs
 
 - 
toStringpublic String toString() Description copied from interface:DatastoreAdapterMethod to return this object as a string.- Specified by:
- toStringin interface- DatastoreAdapter
- Overrides:
- toStringin class- Object
- Returns:
- String version of this object.
 
 - 
getDatastoreDateStatementpublic String getDatastoreDateStatement() Accessor for a statement that will return the statement to use to get the datastore date.- Specified by:
- getDatastoreDateStatementin interface- DatastoreAdapter
- Returns:
- SQL statement to get the datastore date
 
 - 
getPatternExpressionAnyCharacterpublic String getPatternExpressionAnyCharacter() The pattern string for representing one character that is expanded in word searches. Most of databases will use the underscore character.- Specified by:
- getPatternExpressionAnyCharacterin interface- DatastoreAdapter
- Returns:
- the pattern string.
 
 - 
getPatternExpressionZeroMoreCharacterspublic String getPatternExpressionZeroMoreCharacters() The pattern string for representing zero or more characters that is expanded in word searches. Most of databases will use the percent sign character.- Specified by:
- getPatternExpressionZeroMoreCharactersin interface- DatastoreAdapter
- Returns:
- the pattern string.
 
 - 
getEscapePatternExpressionpublic String getEscapePatternExpression() The character for escaping characters in pattern expressions.- Specified by:
- getEscapePatternExpressionin interface- DatastoreAdapter
- Returns:
- the character.
 
 - 
getEscapeCharacterpublic String getEscapeCharacter() The character for escaping characters in pattern expressions.- Specified by:
- getEscapeCharacterin interface- DatastoreAdapter
- Returns:
- the character.
 
 - 
getContinuationStringpublic String getContinuationString() Continuation string to use where the SQL statement goes over more than 1 line. Some JDBC adapters (e.g DB2) don't do conversion.- Returns:
- Continuation string.
 
 - 
getNumericConversionFunctionpublic String getNumericConversionFunction() Accessor for the function to use for converting to numeric.- Specified by:
- getNumericConversionFunctionin interface- DatastoreAdapter
- Returns:
- The numeric conversion function for this datastore.
 
 - 
isStatementCancelpublic boolean isStatementCancel(SQLException sqle) return whether this exception represents a cancelled statement.- Specified by:
- isStatementCancelin interface- DatastoreAdapter
- Parameters:
- sqle- the exception
- Returns:
- whether it is a cancel
 
 - 
isStatementTimeoutpublic boolean isStatementTimeout(SQLException sqle) return whether this exception represents a timed out statement.- Specified by:
- isStatementTimeoutin interface- DatastoreAdapter
- Parameters:
- sqle- the exception
- Returns:
- whether it is a timeout
 
 - 
validToIndexMappingpublic boolean validToIndexMapping(JavaTypeMapping mapping) Description copied from interface:DatastoreAdapterMethod to return whether the specified mapping is indexable. Allows a datastore to not index particular column types.- Specified by:
- validToIndexMappingin interface- DatastoreAdapter
- Parameters:
- mapping- The mapping
- Returns:
- Whether it is indexable
 
 - 
getSQLOperationClasspublic Class getSQLOperationClass(String operationName) Description copied from interface:DatastoreAdapterAccessor for the SQLOperation class for the specified operation (if available for this datastore).- Specified by:
- getSQLOperationClassin interface- DatastoreAdapter
- Parameters:
- operationName- operation name
- Returns:
- SQLOperation class (or null if none available)
 
 - 
getSQLMethodClasspublic Class getSQLMethodClass(String className, String methodName, org.datanucleus.ClassLoaderResolver clr) Description copied from interface:DatastoreAdapterAccessor for the SQLMethod class for the query invocation of specified class + method name (if available for this datastore).- Specified by:
- getSQLMethodClassin interface- DatastoreAdapter
- Parameters:
- className- Name of the class (or null if this is a STATIC method)
- methodName- Method name
- clr- ClassLoader resolver, in case className is a subclass of a supported type
- Returns:
- The SQLMethod class (or null if not defined for this datastore).
 
 - 
loadColumnMappingsprotected void loadColumnMappings(org.datanucleus.plugin.PluginManager pluginMgr, org.datanucleus.ClassLoaderResolver clr)Load all column mappings defined in the associated plugins via the plugin mechanism. All individual DatastoreAdapters should load up their own built-in support.- Parameters:
- pluginMgr- the PluginManager
- clr- the ClassLoaderResolver
 
 - 
registerColumnMappingpublic void registerColumnMapping(String javaTypeName, Class<? extends ColumnMapping> columnMappingType, String jdbcType, String sqlType, boolean dflt) Description copied from interface:DatastoreAdapterMethod to register a column mapping for a specified java type, and against particular JDBC/SQL type.- Specified by:
- registerColumnMappingin interface- DatastoreAdapter
- Parameters:
- javaTypeName- Java type that this is used for
- columnMappingType- The column mapping class to use
- jdbcType- The JDBC type
- sqlType- The SQL type (optional)
- dflt- Whether this is the default mapping for this java type
 
 - 
registerColumnMappingpublic void registerColumnMapping(String javaTypeName, Class<? extends ColumnMapping> columnMappingType, JDBCType jdbcType, String sqlType, boolean dflt) 
 - 
deregisterColumnMappingsForJDBCTypepublic void deregisterColumnMappingsForJDBCType(String jdbcTypeName) Utility to deregister all datastore mappings for a JDBC type. This is called when a JDBC driver doesn't own up to knowing about a JDBC type so we ensure that there are no DataNucleus-added references to that JDBC type.- Specified by:
- deregisterColumnMappingsForJDBCTypein interface- DatastoreAdapter
- Parameters:
- jdbcTypeName- The JDBC type name
 
 - 
getDefaultSqlTypeForJavaTypepublic String getDefaultSqlTypeForJavaType(String javaType, String jdbcType) Description copied from interface:DatastoreAdapterMethod to return the default sql-type for the specified java type (and JDBC type)- Specified by:
- getDefaultSqlTypeForJavaTypein interface- DatastoreAdapter
- Parameters:
- javaType- The java type
- jdbcType- The JDBC type (optional)
- Returns:
- The SQL type
 
 - 
getColumnMappingClasspublic Class<? extends ColumnMapping> getColumnMappingClass(String javaType, String jdbcType, String sqlType, org.datanucleus.ClassLoaderResolver clr, String fieldName) Accessor for a datastore mapping class for the specified java type (and optional jdbc-type or sql-type).- Specified by:
- getColumnMappingClassin interface- DatastoreAdapter
- Parameters:
- javaType- The java type
- jdbcType- The JDBC type
- sqlType- The SQL Type
- clr- ClassLoader resolver to use
- fieldName- Name of the field (if known, for logging only)
- Returns:
- The datastore mapping class
 
 
- 
 
-