org.datanucleus.store.rdbms.adapter
Class SQLiteAdapter

java.lang.Object
  extended by org.datanucleus.store.rdbms.adapter.DatabaseAdapter
      extended by org.datanucleus.store.rdbms.adapter.SQLiteAdapter
All Implemented Interfaces:
org.datanucleus.store.mapped.DatastoreAdapter, RDBMSAdapter

public class SQLiteAdapter
extends DatabaseAdapter

Provides methods for adapting SQL language elements to the SQLite database.


Field Summary
protected static int MAX_IDENTIFIER_LENGTH
           
 
Fields inherited from class org.datanucleus.store.rdbms.adapter.DatabaseAdapter
catalogSeparator, datastoreMajorVersion, datastoreMinorVersion, datastoreProductName, datastoreProductVersion, datastoreRevisionVersion, driverMajorVersion, driverMinorVersion, driverName, driverVersion, identifierQuoteString, LOCALISER, LOCALISER_BASE, maxColumnNameLength, maxConstraintNameLength, maxIndexNameLength, maxTableNameLength, properties, reservedKeywords, supportedOptions
 
Fields inherited from interface org.datanucleus.store.rdbms.adapter.RDBMSAdapter
ACCESS_PARENTQUERY_IN_SUBQUERY_JOINED, ALTER_TABLE_DROP_CONSTRAINT_SYNTAX, ALTER_TABLE_DROP_FOREIGN_KEY_CONSTRAINT, ANSI_CROSSJOIN_SYNTAX, ANSI_JOIN_SYNTAX, AUTO_INCREMENT_COLUMN_TYPE_SPECIFICATION, AUTO_INCREMENT_KEYS_NULL_SPECIFICATION, AUTO_INCREMENT_PK_IN_CREATE_TABLE_COLUMN_DEF, BLOB_SET_USING_SETSTRING, CHAR_COLUMNS_PADDED_WITH_SPACES, CHECK_IN_CREATE_STATEMENTS, CHECK_IN_END_CREATE_STATEMENTS, CLOB_SET_USING_SETSTRING, 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, 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, INCLUDE_ORDERBY_COLS_IN_SELECT, LOCK_OPTION_PLACED_AFTER_FROM, LOCK_OPTION_PLACED_WITHIN_JOIN, LOCK_WITH_SELECT_FOR_UPDATE, NULL_EQUALS_EMPTY_STRING, NULLS_IN_CANDIDATE_KEYS, NULLS_KEYWORD_IN_COLUMN_OPTIONS, ORDERBY_USING_SELECT_COLUMN_INDEX, PERSIST_OF_UNASSIGNED_CHAR, PRIMARYKEY_IN_CREATE_STATEMENTS, STATEMENT_BATCHING, STORED_PROCEDURES, 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_MULTITABLE, USE_UNION_ALL, VIEWS
 
Fields inherited from interface org.datanucleus.store.mapped.DatastoreAdapter
ANALYSIS_METHODS, BIT_IS_REALLY_BOOLEAN, BOOLEAN_COMPARISON, CATALOGS_IN_TABLE_DEFINITIONS, ESCAPE_EXPRESSION_IN_LIKE_PREDICATE, IDENTIFIERS_LOWERCASE, IDENTIFIERS_LOWERCASE_QUOTED, IDENTIFIERS_MIXEDCASE, IDENTIFIERS_MIXEDCASE_QUOTED, IDENTIFIERS_MIXEDCASE_QUOTED_SENSITIVE, IDENTIFIERS_MIXEDCASE_SENSITIVE, IDENTIFIERS_UPPERCASE, IDENTIFIERS_UPPERCASE_QUOTED, IDENTITY_COLUMNS, PROJECTION_IN_TABLE_REFERENCE_JOINS, SCHEMAS_IN_TABLE_DEFINITIONS, SEQUENCES
 
Constructor Summary
SQLiteAdapter(DatabaseMetaData metadata)
          Constructor.
 
Method Summary
 String getAddCandidateKeyStatement(CandidateKey ck, org.datanucleus.store.mapped.IdentifierFactory factory)
          Returns the appropriate SQL to add a candidate key to its table.
 String getAddForeignKeyStatement(ForeignKey fk, org.datanucleus.store.mapped.IdentifierFactory factory)
          Returns the appropriate SQL to add a foreign key to its table.
 String getAddPrimaryKeyStatement(PrimaryKey pk, org.datanucleus.store.mapped.IdentifierFactory factory)
          Returns the appropriate SQL to add a primary key to its table.
 String getAutoIncrementKeyword()
          Accessor for the autoincrementing keyword for generating DDLs.
 String getAutoIncrementStmt(Table table, String columnName)
          Accessor for the autoincrementing sql statement for this datastore.
 String getDropTableStatement(org.datanucleus.store.mapped.DatastoreContainerObject table)
          Returns the appropriate SQL to drop the given table.
 String getRangeByLimitEndOfStatementClause(long offset, long count)
          Method to return the SQL to append to the WHERE clause of a SELECT statement to handle restriction of ranges using the LIMIT keyword.
 String getVendorID()
           
 void initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)
          Initialise the types for this datastore.
 
Methods inherited from class org.datanucleus.store.rdbms.adapter.DatabaseAdapter
addSQLTypeForJDBCType, getAdapterTime, getAddColumnStatement, getCatalogName, getCatalogSeparator, getCheckConstraintForValues, getColumns, getContinuationString, getCreateIndexStatement, getCreateTableStatement, getDatastoreDateStatement, getDatastoreDriverName, getDatastoreDriverVersion, getDatastoreIdentifierMaxLength, getDatastoreProductName, getDatastoreProductVersion, getDeleteTableStatement, getDriverMajorVersion, getDriverMinorVersion, getDropViewStatement, getEscapeCharacter, getEscapePatternExpression, getExistingIndexes, getIdentifierQuoteString, getInsertStatementForNoColumns, getMappingManager, getMaxForeignKeys, getMaxIndexes, getMiliseconds, getNewUUIDFunction, getNumericConversionFunction, getOperatorConcat, getOrderString, getPatternExpressionAnyCharacter, getPatternExpressionZeroMoreCharacters, getRangeByRowNumberColumn, getRangeByRowNumberColumn2, getRequiredTransactionIsolationLevel, getSchemaName, getSelectForUpdateText, getSelectNewUUIDStmt, getSelectWithLockOption, getSequenceCreateStmt, getSequenceNextStmt, getSQLTypeInfoForJdbcType, getSupportedOptions, getSurrogateForEmptyStrings, getTime, getTransactionIsolationForSchemaCreation, getUnlimitedLengthPrecisionValue, getValueForProperty, initialiseDatastore, isIdentityFieldDataType, isKeyword, isReservedKeyword, isStatementCancel, isStatementTimeout, isValidPrimaryKeyType, iteratorReservedWords, newFKInfo, newRDBMSColumnInfo, newSQLTypeInfo, parseKeywordList, removeUnsupportedMappings, setProperties, supportsOption, supportsQueryFetchSize, supportsTransactionIsolation, toString, validToSelectMappingInStatement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_IDENTIFIER_LENGTH

protected static final int MAX_IDENTIFIER_LENGTH
See Also:
Constant Field Values
Constructor Detail

SQLiteAdapter

public SQLiteAdapter(DatabaseMetaData metadata)
Constructor.

Parameters:
metadata - MetaData for the Database
Method Detail

getVendorID

public String getVendorID()
Specified by:
getVendorID in interface org.datanucleus.store.mapped.DatastoreAdapter
Overrides:
getVendorID in class DatabaseAdapter

initialiseTypes

public void initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler,
                            org.datanucleus.store.connection.ManagedConnection mconn)
Description copied from class: DatabaseAdapter
Initialise the types for this datastore.

Specified by:
initialiseTypes in interface org.datanucleus.store.mapped.DatastoreAdapter
Overrides:
initialiseTypes in class DatabaseAdapter
Parameters:
handler - SchemaHandler that we initialise the types for
mconn - Managed connection to use

getDropTableStatement

public String getDropTableStatement(org.datanucleus.store.mapped.DatastoreContainerObject table)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL to drop the given table. It should return something like:

 DROP TABLE FOO CASCADE
 

Specified by:
getDropTableStatement in interface RDBMSAdapter
Overrides:
getDropTableStatement in class DatabaseAdapter
Parameters:
table - The table to drop.
Returns:
The text of the SQL statement.

getAddPrimaryKeyStatement

public String getAddPrimaryKeyStatement(PrimaryKey pk,
                                        org.datanucleus.store.mapped.IdentifierFactory factory)
Description copied from class: DatabaseAdapter
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)
 ALTER TABLE FOO ADD PRIMARY KEY (BAR)
 

Specified by:
getAddPrimaryKeyStatement in interface RDBMSAdapter
Overrides:
getAddPrimaryKeyStatement in class DatabaseAdapter
Parameters:
pk - An object describing the primary key.
factory - Identifier factory
Returns:
The text of the SQL statement.

getAddCandidateKeyStatement

public String getAddCandidateKeyStatement(CandidateKey ck,
                                          org.datanucleus.store.mapped.IdentifierFactory factory)
Description copied from class: DatabaseAdapter
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)
 ALTER TABLE FOO ADD UNIQUE (BAZ)
 

Specified by:
getAddCandidateKeyStatement in interface RDBMSAdapter
Overrides:
getAddCandidateKeyStatement in class DatabaseAdapter
Parameters:
ck - An object describing the candidate key.
factory - Identifier factory
Returns:
The text of the SQL statement.

getAddForeignKeyStatement

public String getAddForeignKeyStatement(ForeignKey fk,
                                        org.datanucleus.store.mapped.IdentifierFactory factory)
Description copied from class: DatabaseAdapter
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)
 ALTER TABLE FOO ADD FOREIGN KEY (BAR, BAZ) REFERENCES ABC (COL1, COL2)
 

Specified by:
getAddForeignKeyStatement in interface RDBMSAdapter
Overrides:
getAddForeignKeyStatement in class DatabaseAdapter
Parameters:
fk - An object describing the foreign key.
factory - Identifier factory
Returns:
The text of the SQL statement.

getRangeByLimitEndOfStatementClause

public String getRangeByLimitEndOfStatementClause(long offset,
                                                  long count)
Method to return the SQL to append to the WHERE clause of a SELECT statement to handle restriction of ranges using the LIMIT keyword.

Specified by:
getRangeByLimitEndOfStatementClause in interface RDBMSAdapter
Overrides:
getRangeByLimitEndOfStatementClause in class DatabaseAdapter
Parameters:
offset - The offset to return from
count - The number of items to return
Returns:
The SQL to append to allow for ranges using LIMIT.

getAutoIncrementStmt

public String getAutoIncrementStmt(Table table,
                                   String columnName)
Description copied from class: DatabaseAdapter
Accessor for the autoincrementing sql statement for this datastore.

Specified by:
getAutoIncrementStmt in interface RDBMSAdapter
Overrides:
getAutoIncrementStmt in class DatabaseAdapter
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

getAutoIncrementKeyword

public String getAutoIncrementKeyword()
Description copied from class: DatabaseAdapter
Accessor for the autoincrementing keyword for generating DDLs. (CREATE TABLEs...).

Specified by:
getAutoIncrementKeyword in interface RDBMSAdapter
Overrides:
getAutoIncrementKeyword in class DatabaseAdapter
Returns:
The keyword for a column using autoincrement


Copyright © 2012. All Rights Reserved.