Class NuoDBAdapter
java.lang.Object
org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
org.datanucleus.store.rdbms.adapter.NuoDBAdapter
- All Implemented Interfaces:
DatastoreAdapter
Adapter for NuoDB (http://www.nuodb.com).
This adapter was written based on v2.0.2 of the NuoDB JDBC driver.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
BaseDatastoreAdapter.ColumnTypeMappings
-
Field Summary
FieldsFields inherited from class org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
catalogSeparator, datastoreMajorVersion, datastoreMinorVersion, datastoreProductName, datastoreProductVersion, datastoreRevisionVersion, datastoreTypeMappingsByJavaType, driverMajorVersion, driverMinorVersion, driverName, driverVersion, identifierQuoteString, MAX_IDENTIFIER_LENGTH, maxColumnNameLength, maxConstraintNameLength, maxIndexNameLength, maxTableNameLength, NONRESERVED_WORDS, reservedKeywords, SQL2003_RESERVED_WORDS, SQL92_RESERVED_WORDS, SQL99_RESERVED_WORDS, supportedJdbcTypesById, supportedOptions, unsupportedJdbcTypesById
Fields inherited from interface org.datanucleus.store.rdbms.adapter.DatastoreAdapter
ACCESS_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, INCLUDE_TABLE_INDEX_STATISTICS, 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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetAddPrimaryKeyStatement
(PrimaryKey pk, IdentifierFactory factory) Override the default implementation since we accept the PK in the CREATE TABLE statement.getCatalogName
(Connection conn) Accessor for the Catalog Name for this datastore.getCreateIndexStatement
(Index idx, IdentifierFactory factory) Returns the appropriate DDL to create an index.Accessor for a statement that will return the statement to use to get the datastore date.getDropDatabaseStatement
(String catalogName, String schemaName) Method to return the statement necessary to drop a database with this RDBMS.getIdentityKeyword
(org.datanucleus.store.StoreManager storeMgr) Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...).getRangeByLimitEndOfStatementClause
(long offset, long count, boolean hasOrdering) Method to return the SQL to append to the WHERE clause of a SELECT statement to handle restriction of ranges using the OFFSET/FETCH keywords.getSchemaName
(Connection conn) Accessor for the Schema Name for this datastore.getSequenceCreateStmt
(String sequenceName, Integer min, Integer max, Integer start, Integer increment, Integer cacheSize) Accessor for the sequence statement to create the sequence.getSequenceNextStmt
(String sequenceName) Accessor for the statement for getting the next id from the sequence for this datastore.getSQLMethodClass
(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).Accessor for the Vendor ID for this datastore.void
initialiseTypes
(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn) Initialise the types for this datastore.protected void
loadColumnMappings
(org.datanucleus.plugin.PluginManager mgr, org.datanucleus.ClassLoaderResolver clr) Load all datastore mappings for this RDBMS database.boolean
sequenceExists
(Connection conn, String catalogName, String schemaName, String seqName) Convenience method to return whether the specified sequence already exists.Methods inherited from class org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
addSQLTypeForJDBCType, deregisterColumnMappingsForJDBCType, getAdapterTime, getAddCandidateKeyStatement, getAddColumnStatement, getAddForeignKeyStatement, getCatalogSeparator, getCheckConstraintForValues, getColumnMappingClass, getColumns, getContinuationString, getCreateDatabaseStatement, getCreateTableStatement, getDatastoreDriverName, getDatastoreDriverVersion, getDatastoreIdentifierMaxLength, getDatastoreProductName, getDatastoreProductVersion, getDefaultSqlTypeForJavaType, getDeleteTableStatement, getDriverMajorVersion, getDriverMinorVersion, getDropTableStatement, getDropViewStatement, getEscapeCharacter, getEscapePatternExpression, getExistingIndexes, getIdentifierQuoteString, getIdentityJavaTypeForType, getIdentityLastValueStmt, getInsertStatementForNoColumns, getJDBCTypeForName, getMappingManager, getMaxForeignKeys, getMaxIndexes, getMiliseconds, getNameForJDBCType, getNewUUIDFunction, getNumericConversionFunction, getOrderString, getPatternExpressionAnyCharacter, getPatternExpressionZeroMoreCharacters, getPreferredDefaultSQLTypeForJDBCType, getRangeByRowNumberColumn, getRangeByRowNumberColumn2, getRequiredTransactionIsolationLevel, getReservedWords, getSelectForUpdateText, getSelectNewUUIDStmt, getSelectWithLockOption, getSQLOperationClass, getSQLTypeInfoForJdbcType, getSupportedOptions, getSurrogateForEmptyStrings, getTime, getTransactionIsolationForSchemaCreation, getUnlimitedLengthPrecisionValue, getUpdateTableStatement, initialise, initialiseDatastore, isIdentityFieldDataType, isReservedKeyword, isStatementCancel, isStatementTimeout, isValidPrimaryKeyType, newFKInfo, newRDBMSColumnInfo, newSQLTypeInfo, registerColumnMapping, registerColumnMapping, supportsOption, supportsQueryFetchSize, supportsTransactionIsolation, toString, validToIndexMapping, validToSelectMappingInStatement
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.datanucleus.store.rdbms.adapter.DatastoreAdapter
getIdentityKeyword
-
Field Details
-
NONSQL92_RESERVED_WORDS
- See Also:
-
NUODB_EXTRA_RESERVED_WORDS
- See Also:
-
-
Constructor Details
-
NuoDBAdapter
-
-
Method Details
-
getVendorID
Description copied from interface:DatastoreAdapter
Accessor for the Vendor ID for this datastore.- Specified by:
getVendorID
in interfaceDatastoreAdapter
- Overrides:
getVendorID
in classBaseDatastoreAdapter
- Returns:
- Vendor id for this datastore
-
getCatalogName
Description copied from class:BaseDatastoreAdapter
Accessor for the Catalog Name for this datastore.- Specified by:
getCatalogName
in interfaceDatastoreAdapter
- Overrides:
getCatalogName
in classBaseDatastoreAdapter
- Parameters:
conn
- Connection to the datastore- Returns:
- The catalog name
- Throws:
SQLException
- Thrown if error occurs in determining the catalog name.
-
getSchemaName
Description copied from class:BaseDatastoreAdapter
Accessor for the Schema Name for this datastore.- Specified by:
getSchemaName
in interfaceDatastoreAdapter
- Overrides:
getSchemaName
in classBaseDatastoreAdapter
- Parameters:
conn
- Connection to the datastore- Returns:
- The schema name
- Throws:
SQLException
- Thrown if error occurs in determining the schema name.
-
initialiseTypes
public void initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn) Description copied from class:BaseDatastoreAdapter
Initialise the types for this datastore.- Specified by:
initialiseTypes
in interfaceDatastoreAdapter
- Overrides:
initialiseTypes
in classBaseDatastoreAdapter
- Parameters:
handler
- SchemaHandler that we initialise the types formconn
- Managed connection to use
-
getCreateIndexStatement
Returns the appropriate DDL to create an index. It should return something like:CREATE [UNIQUE ]INDEX FOO_N1 ON FOO (BAR,BAZ) [Extended Settings]
- Specified by:
getCreateIndexStatement
in interfaceDatastoreAdapter
- Overrides:
getCreateIndexStatement
in classBaseDatastoreAdapter
- Parameters:
idx
- An object describing the index.factory
- Identifier factory- Returns:
- The text of the SQL statement.
-
getDropDatabaseStatement
Description copied from interface:DatastoreAdapter
Method to return the statement necessary to drop a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
getDropDatabaseStatement
in interfaceDatastoreAdapter
- Overrides:
getDropDatabaseStatement
in classBaseDatastoreAdapter
- Parameters:
catalogName
- Name of the catalogschemaName
- Name of the schema- Returns:
- The DDL statement
-
getAddPrimaryKeyStatement
Override the default implementation since we accept the PK in the CREATE TABLE statement.- Specified by:
getAddPrimaryKeyStatement
in interfaceDatastoreAdapter
- Overrides:
getAddPrimaryKeyStatement
in classBaseDatastoreAdapter
- Parameters:
pk
- An object describing the primary key.factory
- Identifier factory- Returns:
- The PK statement
-
sequenceExists
public boolean sequenceExists(Connection conn, String catalogName, String schemaName, String seqName) Description copied from interface:DatastoreAdapter
Convenience method to return whether the specified sequence already exists.- Specified by:
sequenceExists
in interfaceDatastoreAdapter
- Overrides:
sequenceExists
in classBaseDatastoreAdapter
- Parameters:
conn
- Connection to use for checkingcatalogName
- Catalog nameschemaName
- Schema nameseqName
- Name of the sequence- Returns:
- Whether it exists
-
getSequenceCreateStmt
public String getSequenceCreateStmt(String sequenceName, Integer min, Integer max, Integer start, Integer increment, Integer cacheSize) Accessor for the sequence statement to create the sequence.- Specified by:
getSequenceCreateStmt
in interfaceDatastoreAdapter
- Overrides:
getSequenceCreateStmt
in classBaseDatastoreAdapter
- Parameters:
sequenceName
- Name of the sequencemin
- Minimum value for the sequencemax
- Maximum value for the sequencestart
- Start value for the sequenceincrement
- Increment value for the sequencecacheSize
- Cache size for the sequence- Returns:
- The statement for getting the next id from the sequence
-
getSequenceNextStmt
Accessor for the statement for getting the next id from the sequence for this datastore.- Specified by:
getSequenceNextStmt
in interfaceDatastoreAdapter
- Overrides:
getSequenceNextStmt
in classBaseDatastoreAdapter
- Parameters:
sequenceName
- Name of the sequence- Returns:
- The statement for getting the next id for the sequence
-
getIdentityKeyword
Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...).- Specified by:
getIdentityKeyword
in interfaceDatastoreAdapter
- Overrides:
getIdentityKeyword
in classBaseDatastoreAdapter
- Parameters:
storeMgr
- The Store Manager- Returns:
- The keyword for a column using auto-increment
-
getRangeByLimitEndOfStatementClause
Method to return the SQL to append to the WHERE clause of a SELECT statement to handle restriction of ranges using the OFFSET/FETCH keywords.- Specified by:
getRangeByLimitEndOfStatementClause
in interfaceDatastoreAdapter
- Overrides:
getRangeByLimitEndOfStatementClause
in classBaseDatastoreAdapter
- Parameters:
offset
- The offset to return fromcount
- The number of items to returnhasOrdering
- Whether there is ordering present- Returns:
- The SQL to append to allow for ranges using OFFSET/FETCH.
-
getDatastoreDateStatement
Description copied from class:BaseDatastoreAdapter
Accessor for a statement that will return the statement to use to get the datastore date.- Specified by:
getDatastoreDateStatement
in interfaceDatastoreAdapter
- Overrides:
getDatastoreDateStatement
in classBaseDatastoreAdapter
- Returns:
- SQL statement to get the datastore date
-
getSQLMethodClass
public Class<? extends SQLMethod> getSQLMethodClass(String className, String methodName, org.datanucleus.ClassLoaderResolver clr) Description copied from interface:DatastoreAdapter
Accessor for the SQLMethod class for the query invocation of specified class + method name (if available for this datastore).- Specified by:
getSQLMethodClass
in interfaceDatastoreAdapter
- Overrides:
getSQLMethodClass
in classBaseDatastoreAdapter
- Parameters:
className
- Name of the class (or null if this is a STATIC method)methodName
- Method nameclr
- ClassLoader resolver, in case className is a subclass of a supported type- Returns:
- The SQLMethod class (or null if not defined for this datastore).
-
loadColumnMappings
protected void loadColumnMappings(org.datanucleus.plugin.PluginManager mgr, org.datanucleus.ClassLoaderResolver clr) Load all datastore mappings for this RDBMS database.- Overrides:
loadColumnMappings
in classBaseDatastoreAdapter
- Parameters:
mgr
- the PluginManagerclr
- the ClassLoaderResolver
-