org.apache.openjpa.jdbc.sql
Class HSQLDictionary
java.lang.Object
org.apache.openjpa.jdbc.sql.DBDictionary
org.apache.openjpa.jdbc.sql.HSQLDictionary
- All Implemented Interfaces:
- JoinSyntaxes, Configurable, IdentifierConfiguration, ConnectionDecorator, LoggingConnectionDecorator.SQLWarningHandler
public class HSQLDictionary
- extends DBDictionary
Dictionary for HyperSQL (HSQLDB) database.
Field Summary |
boolean |
cacheTables
Sets whether HSQL should use "CREATED CACHED TABLE" rather than
"CREATE TABLE", which allows disk-based database operations. |
Fields inherited from class org.apache.openjpa.jdbc.sql.DBDictionary |
_proxyManager, allowsAliasInBulkClause, arrayTypeName, autoAssignClause, autoAssignTypeName, batchLimit, bigintTypeName, binaryTypeName, bitLengthFunction, bitTypeName, blobBufferSize, blobTypeName, booleanTypeName, castFunction, catalogSeparator, CENTI, characterColumnSize, charTypeName, clobBufferSize, clobTypeName, closePoolSQL, concatenateDelimiter, concatenateFunction, conf, connected, CONS_NAME_AFTER, CONS_NAME_BEFORE, CONS_NAME_MID, constraintNameMode, createPrimaryKeys, crossJoinClause, currentDateFunction, currentTimeFunction, currentTimestampFunction, datePrecision, dateTypeName, DECI, decimalTypeName, defaultSchemaName, delimitedCase, distinctCountColumnSeparator, distinctTypeName, doubleTypeName, driverVendor, dropTableSQL, fixedSizeTypeNames, fixedSizeTypeNameSet, floatTypeName, forUpdateClause, getStringVal, inClauseLimit, initializationSQL, innerJoinClause, integerTypeName, invalidColumnWordSet, isJDBC3, isJDBC4, javaObjectTypeName, joinSyntax, lastGeneratedKeyQuery, leadingDelimiter, log, longVarbinaryTypeName, longVarcharTypeName, maxAutoAssignNameLength, maxColumnNameLength, maxConstraintNameLength, maxEmbeddedBlobSize, maxEmbeddedClobSize, maxIndexesPerTable, maxIndexNameLength, maxTableNameLength, MICRO, MILLI, NAME_ANY, NAME_SEQUENCE, NAME_TABLE, nameConcatenator, NANO, nativeSequenceType, nextSequenceQuery, NO_BATCH, nullTypeName, numericTypeName, otherTypeName, outerJoinClause, platform, RANGE_POST_DISTINCT, RANGE_POST_LOCK, RANGE_POST_SELECT, RANGE_PRE_DISTINCT, rangePosition, realTypeName, refTypeName, reportsSuccessNoInfoOnBatchUpdates, requiresAliasForSubselect, requiresAutoCommitForMetaData, requiresCastForComparisons, requiresCastForMathFunctions, requiresConditionForCrossJoin, requiresSearchStringEscapeForLike, requiresTargetForDelete, reservedWords, reservedWordSet, SCHEMA_CASE_LOWER, SCHEMA_CASE_PRESERVE, SCHEMA_CASE_UPPER, schemaCase, searchStringEscape, SEC, selectWords, selectWordSet, sequenceNameSQL, sequenceSchemaSQL, sequenceSQL, setStringRightTruncationOn, simulateLocking, smallintTypeName, sqlStateCodes, storageLimitationsFatal, storeCharsAsNumbers, storeLargeNumbersAsStrings, stringLengthFunction, structTypeName, substringFunctionName, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsAutoAssign, supportsCascadeDeleteAction, supportsCascadeUpdateAction, supportsCaseConversionForLob, supportsComments, supportsCorrelatedSubselect, supportsDefaultDeleteAction, supportsDefaultUpdateAction, supportsDeferredConstraints, supportsDelimitedIdentifiers, supportsForeignKeys, supportsForeignKeysComposite, supportsGeneralCaseExpression, supportsGetGeneratedKeys, supportsHaving, supportsLockingWithDistinctClause, supportsLockingWithInnerJoin, supportsLockingWithMultipleTables, supportsLockingWithOrderClause, supportsLockingWithOuterJoin, supportsLockingWithSelectRange, supportsModOperator, supportsMultipleNontransactionalResultSets, supportsNullDeleteAction, supportsNullTableForGetColumns, supportsNullTableForGetImportedKeys, supportsNullTableForGetIndexInfo, supportsNullTableForGetPrimaryKeys, supportsNullUniqueColumn, supportsNullUpdateAction, supportsParameterInSelect, supportsQueryTimeout, supportsRestrictDeleteAction, supportsRestrictUpdateAction, supportsSchemaForGetColumns, supportsSchemaForGetTables, supportsSelectEndIndex, supportsSelectForUpdate, supportsSelectFromFinalTable, supportsSelectStartIndex, supportsSimpleCaseExpression, supportsSubselect, supportsUniqueConstraints, supportsXMLColumn, systemSchemas, systemSchemaSet, systemTables, systemTableSet, tableForUpdateClause, tableLengthIncludesSchema, tableTypes, timestampTypeName, timeTypeName, tinyintTypeName, toLowerCaseFunction, toUpperCaseFunction, trailingDelimiter, trimBothFunction, trimLeadingFunction, trimSchemaName, trimTrailingFunction, typeModifierSet, UNLIMITED, useGetBestRowIdentifierForPrimaryKeys, useGetBytesForBlobs, useGetObjectForBlobs, useGetStringForClobs, useNativeSequenceCache, useSchemaName, useSetBytesForBlobs, useSetStringForClobs, useWildCardForCount, validationSQL, varbinaryTypeName, varcharTypeName, VENDOR_DATADIRECT, VENDOR_OTHER, xmlTypeEncoding, xmlTypeName |
Method Summary |
protected void |
appendSelectRange(SQLBuffer buf,
long start,
long end,
boolean subselect)
If this dictionary can select ranges,
use this method to append the range SQL. |
void |
connectedConfiguration(Connection conn)
Determine HSQLDB version and configure itself accordingly. |
protected void |
determineHSQLDBVersion(Connection con)
Determine HSQLDB version either by using JDBC 3 method or, if it
is not available, by parsing the value returned by
DatabaseMetaData.getDatabaseProductVersion(). |
String[] |
getAddColumnSQL(Column column)
Return a series of SQL statements to add the given column to
its table. |
String[] |
getAddPrimaryKeySQL(PrimaryKey pk)
Return a series of SQL statements to add the given primary key to
its table. |
Column[] |
getColumns(DatabaseMetaData meta,
DBIdentifier catalog,
DBIdentifier schemaName,
DBIdentifier tableName,
DBIdentifier columnName,
Connection conn)
Reflect on the schema to find columns matching the given table and
column patterns. |
Column[] |
getColumns(DatabaseMetaData meta,
String catalog,
String schemaName,
String tableName,
String columnName,
Connection conn)
Reflect on the schema to find columns matching the given table and
column patterns. |
String[] |
getCreateTableSQL(Table table)
Return a series of SQL statements to create the given table, complete
with columns. |
String[] |
getDropPrimaryKeySQL(PrimaryKey pk)
Return a series of SQL statements to drop the given primary key from
its table. |
int |
getJDBCType(int metaTypeCode,
boolean lob)
Return the preferred Types constant for the given
JavaTypes or JavaSQLTypes constant. |
String |
getPlaceholderValueString(Column col)
Return a SQL string to act as a placeholder for the given column. |
int |
getPreferredType(int type)
Return the preferred Types type for the given one. |
protected String |
getPrimaryKeyConstraintSQL(PrimaryKey pk)
Return the declaration SQL for the given primary key. |
protected String |
getSequencesSQL(DBIdentifier schemaName,
DBIdentifier sequenceName)
|
protected String |
getSequencesSQL(String schemaName,
String sequenceName)
Return the SQL needed to select the list of sequences. |
void |
indexOf(SQLBuffer buf,
FilterValue str,
FilterValue find,
FilterValue start)
Invoke this database's indexOf function. |
boolean |
isSystemIndex(DBIdentifier name,
Table table)
This method is used to filter system indexes from database metadata. |
boolean |
isSystemIndex(String name,
Table table)
This method is used to filter system indexes from database metadata. |
OpenJPAException |
newStoreException(String msg,
SQLException[] causes,
Object failed)
Return a new exception that wraps causes . |
void |
setBigDecimal(PreparedStatement stmnt,
int idx,
BigDecimal val,
Column col)
Set the given value as a parameter to the statement. |
void |
setDouble(PreparedStatement stmnt,
int idx,
double val,
Column col)
Set the given value as a parameter to the statement. |
SQLBuffer |
toOperation(String op,
SQLBuffer selects,
SQLBuffer from,
SQLBuffer where,
SQLBuffer group,
SQLBuffer having,
SQLBuffer order,
boolean distinct,
long start,
long end,
String forUpdateClause)
Return the SQL for the given selecting operation. |
Methods inherited from class org.apache.openjpa.jdbc.sql.DBDictionary |
addCastAsType, addErrorCode, appendCast, appendLength, appendNumericCast, appendSelect, appendSize, appendUpdates, appendXmlComparison, assertSupport, calculateValue, canOuterJoin, checkNameLength, checkNameLength, checkNameLength, closeDataSource, combineForeignKey, comment, comparison, configureNamingRules, convertSchemaCase, convertSchemaCase, copy, copy, createIndexIfNecessary, createIndexIfNecessary, decorate, deleteStream, delimitAll, endConfiguration, executeQuery, fromDBName, getAddForeignKeySQL, getAlterSequenceSQL, getArray, getAsciiStream, getBatchFetchSize, getBatchLimit, getBatchUpdateCount, getBigDecimal, getBigInteger, getBinaryStream, getBlob, getBlobObject, getBoolean, getByte, getBytes, getCalendar, getCastFunction, getCastFunction, getCatalogNameForMetadata, getCatalogNameForMetadata, getChar, getCharacterStream, getClob, getClobString, getColumnDBName, getColumnIdentifier, getColumnNameForMetadata, getColumnNameForMetadata, getConversionKey, getCreateIndexSQL, getCreateSequenceSQL, getCreateTableSQL, getDate, getDate, getDeclareColumnSQL, getDefaultIdentifierRule, getDefaultSchemaName, getDeleteTableContentsSQL, getDeleteTargets, getDelimitedCase, getDelimitIdentifiers, getDouble, getDropColumnSQL, getDropForeignKeySQL, getDropIndexSQL, getDropSequenceSQL, getDropTableSQL, getFloat, getForeignKeyConstraintSQL, getForUpdateClause, getFrom, getFromSelect, getFullIdentifier, getFullName, getFullName, getFullName, getGeneratedKey, getGeneratedKeySequenceName, getGenKeySeqName, getIdentifierConcatenator, getIdentifierDelimiter, getIdentifierRule, getIdentifierRules, getIdentityColumnName, getImportedKeys, getImportedKeys, getImportedKeys, getImportedKeys, getIndexInfo, getIndexInfo, getInt, getInvalidColumnWordSet, getIsNotNullSQL, getIsNullSQL, getJDBCType, getJDBCType, getKey, getLeadingDelimiter, getLOBStream, getLocale, getLog, getLong, getMarkerForInsertUpdate, getNamingUtil, getNumber, getObject, getPrimaryKeys, getPrimaryKeys, getPrimaryKeysFromBestRowIdentifier, getPrimaryKeysFromBestRowIdentifier, getPrimaryKeysFromGetPrimaryKeys, getPrimaryKeysFromGetPrimaryKeys, getRef, getSchemaCase, getSchemaNameForMetadata, getSchemaNameForMetadata, getSelectOperation, getSelects, getSelectTableAliases, getSequence, getSequences, getSequences, getShort, getString, getSupportsDelimitedIdentifiers, getSupportsXMLColumn, getTableNameForMetadata, getTableNameForMetadata, getTables, getTables, getTime, getTimestamp, getTrailingDelimiter, getTrimSchemaName, getTypeName, getTypeName, getUniqueConstraintSQL, getValidColumnName, getValidColumnName, getValidColumnName, getValidColumnName, getValidForeignKeyName, getValidForeignKeyName, getValidIndexName, getValidIndexName, getValidPrimaryKeyName, getValidSequenceName, getValidSequenceName, getValidTableName, getValidTableName, getValidUniqueName, getValidUniqueName, getVersionColumn, getVersionColumn, getWhere, getXMLTypeEncoding, handleWarning, insertBlobForStreamingLoad, insertClobForStreamingLoad, insertSize, isFatalException, isSelect, isSystemSequence, isSystemSequence, isSystemSequence, isSystemTable, isSystemTable, makeNameValid, makeNameValid, makeNameValid, makeNameValid, matchErrorState, mathFunction, narrow, needsToCreateIndex, needsToCreateIndex, newColumn, newForeignKey, newIndex, newPrimaryKey, newSequence, newTable, prepareStatement, putBytes, putChars, putString, refSchemaComponents, serialize, setArray, setAsciiStream, setBatchLimit, setBigInteger, setBinaryStream, setBlob, setBlobObject, setBoolean, setByte, setBytes, setCalendar, setChar, setCharacterStream, setClob, setClobString, setConfiguration, setDate, setDate, setDefaultSchemaName, setDelimitedCase, setDelimitIdentifiers, setFloat, setInt, setJoinSyntax, setLeadingDelimiter, setLocale, setLong, setNull, setNumber, setObject, setQueryTimeout, setRef, setShort, setStatementQueryTimeout, setString, setSupportsDelimitedIdentifiers, setSupportsXMLColumn, setTime, setTimeouts, setTimeouts, setTimestamp, setTrailingDelimiter, setTrimSchemaName, setTyped, setUnknown, setXMLTypeEncoding, shorten, startConfiguration, storageWarning, substring, supportsDeferredForeignKeyConstraints, supportsDeferredUniqueConstraints, supportsDeleteAction, supportsIsolationForUpdate, supportsLocking, supportsRandomAccessResultSet, supportsUpdateAction, toBulkOperation, toDBName, toDBName, toDelete, toLong, toNativeJoin, toOperation, toSelect, toSelect, toSelect, toSelect, toSelect, toSelectCount, toSQL92Join, toTraditionalJoin, toUpdate, updateBlob, updateClob, validateBatchProcess, validateDBSpecificBatchProcess |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
cacheTables
public boolean cacheTables
- Sets whether HSQL should use "CREATED CACHED TABLE" rather than
"CREATE TABLE", which allows disk-based database operations.
HSQLDictionary
public HSQLDictionary()
connectedConfiguration
public void connectedConfiguration(Connection conn)
throws SQLException
- Determine HSQLDB version and configure itself accordingly.
- Overrides:
connectedConfiguration
in class DBDictionary
- Throws:
SQLException
determineHSQLDBVersion
protected void determineHSQLDBVersion(Connection con)
throws SQLException
- Determine HSQLDB version either by using JDBC 3 method or, if it
is not available, by parsing the value returned by
DatabaseMetaData.getDatabaseProductVersion().
- Throws:
SQLException
getJDBCType
public int getJDBCType(int metaTypeCode,
boolean lob)
- Description copied from class:
DBDictionary
- Return the preferred
Types
constant for the given
JavaTypes
or JavaSQLTypes
constant.
- Overrides:
getJDBCType
in class DBDictionary
getPreferredType
public int getPreferredType(int type)
- Description copied from class:
DBDictionary
- Return the preferred
Types
type for the given one. Returns
the given type by default.
- Overrides:
getPreferredType
in class DBDictionary
getAddPrimaryKeySQL
public String[] getAddPrimaryKeySQL(PrimaryKey pk)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to add the given primary key to
its table. Return an empty array if operation not supported.
Returns
ALTER TABLE <table name> ADD
<pk cons sql >
by default.
- Overrides:
getAddPrimaryKeySQL
in class DBDictionary
getDropPrimaryKeySQL
public String[] getDropPrimaryKeySQL(PrimaryKey pk)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to drop the given primary key from
its table. Return an empty array if operation not supported.
Returns
ALTER TABLE <table name> DROP CONSTRAINT
<pk name>
by default.
- Overrides:
getDropPrimaryKeySQL
in class DBDictionary
getAddColumnSQL
public String[] getAddColumnSQL(Column column)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to add the given column to
its table. Return an empty array if operation not supported. Returns
ALTER TABLE <table name> ADD (<col dec>)
by default.
- Overrides:
getAddColumnSQL
in class DBDictionary
getCreateTableSQL
public String[] getCreateTableSQL(Table table)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to create the given table, complete
with columns. Indexes and constraints will be created separately.
- Overrides:
getCreateTableSQL
in class DBDictionary
getPrimaryKeyConstraintSQL
protected String getPrimaryKeyConstraintSQL(PrimaryKey pk)
- Description copied from class:
DBDictionary
- Return the declaration SQL for the given primary key. This method is
used from within
DBDictionary.getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.SchemaGroup)
and
DBDictionary.getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)
. Returns
CONSTRAINT <pk name> PRIMARY KEY (<col list>)
by default.
- Overrides:
getPrimaryKeyConstraintSQL
in class DBDictionary
isSystemIndex
public boolean isSystemIndex(String name,
Table table)
- Description copied from class:
DBDictionary
- This method is used to filter system indexes from database metadata.
Return true if the given index name represents a system index that
should not appear in the schema definition. Returns false by default.
- Overrides:
isSystemIndex
in class DBDictionary
- Parameters:
name
- the index nametable
- the index table
isSystemIndex
public boolean isSystemIndex(DBIdentifier name,
Table table)
- Description copied from class:
DBDictionary
- This method is used to filter system indexes from database metadata.
Return true if the given index name represents a system index that
should not appear in the schema definition. Returns false by default.
- Overrides:
isSystemIndex
in class DBDictionary
- Parameters:
name
- the index nametable
- the index table
getSequencesSQL
protected String getSequencesSQL(String schemaName,
String sequenceName)
- Description copied from class:
DBDictionary
- Return the SQL needed to select the list of sequences.
- Overrides:
getSequencesSQL
in class DBDictionary
getSequencesSQL
protected String getSequencesSQL(DBIdentifier schemaName,
DBIdentifier sequenceName)
- Overrides:
getSequencesSQL
in class DBDictionary
toOperation
public SQLBuffer toOperation(String op,
SQLBuffer selects,
SQLBuffer from,
SQLBuffer where,
SQLBuffer group,
SQLBuffer having,
SQLBuffer order,
boolean distinct,
long start,
long end,
String forUpdateClause)
- Description copied from class:
DBDictionary
- Return the SQL for the given selecting operation.
- Overrides:
toOperation
in class DBDictionary
getColumns
public Column[] getColumns(DatabaseMetaData meta,
String catalog,
String schemaName,
String tableName,
String columnName,
Connection conn)
throws SQLException
- Description copied from class:
DBDictionary
- Reflect on the schema to find columns matching the given table and
column patterns.
- Overrides:
getColumns
in class DBDictionary
- Throws:
SQLException
getColumns
public Column[] getColumns(DatabaseMetaData meta,
DBIdentifier catalog,
DBIdentifier schemaName,
DBIdentifier tableName,
DBIdentifier columnName,
Connection conn)
throws SQLException
- Description copied from class:
DBDictionary
- Reflect on the schema to find columns matching the given table and
column patterns.
- Overrides:
getColumns
in class DBDictionary
- Throws:
SQLException
setDouble
public void setDouble(PreparedStatement stmnt,
int idx,
double val,
Column col)
throws SQLException
- Description copied from class:
DBDictionary
- Set the given value as a parameter to the statement.
- Overrides:
setDouble
in class DBDictionary
- Throws:
SQLException
setBigDecimal
public void setBigDecimal(PreparedStatement stmnt,
int idx,
BigDecimal val,
Column col)
throws SQLException
- Description copied from class:
DBDictionary
- Set the given value as a parameter to the statement.
- Overrides:
setBigDecimal
in class DBDictionary
- Throws:
SQLException
appendSelectRange
protected void appendSelectRange(SQLBuffer buf,
long start,
long end,
boolean subselect)
- Description copied from class:
DBDictionary
- If this dictionary can select ranges,
use this method to append the range SQL.
- Overrides:
appendSelectRange
in class DBDictionary
indexOf
public void indexOf(SQLBuffer buf,
FilterValue str,
FilterValue find,
FilterValue start)
- Description copied from class:
DBDictionary
- Invoke this database's indexOf function.
- Overrides:
indexOf
in class DBDictionary
- Parameters:
buf
- the SQL buffer to write the indexOf invocation tostr
- a query value representing the target stringfind
- a query value representing the search stringstart
- a query value representing the start index, or null
to start at the beginning
getPlaceholderValueString
public String getPlaceholderValueString(Column col)
- Description copied from class:
DBDictionary
- Return a SQL string to act as a placeholder for the given column.
- Overrides:
getPlaceholderValueString
in class DBDictionary
newStoreException
public OpenJPAException newStoreException(String msg,
SQLException[] causes,
Object failed)
- Description copied from class:
DBDictionary
- Return a new exception that wraps
causes
.
However, the details of exactly what type of exception is returned can
be determined by the implementation. This may take into account
DB-specific exception information in causes
.
- Overrides:
newStoreException
in class DBDictionary
Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.