org.apache.openjpa.jdbc.sql
Class SolidDBDictionary
java.lang.Object
   org.apache.openjpa.jdbc.sql.DBDictionary
org.apache.openjpa.jdbc.sql.DBDictionary
       org.apache.openjpa.jdbc.sql.SolidDBDictionary
org.apache.openjpa.jdbc.sql.SolidDBDictionary
- All Implemented Interfaces: 
- JoinSyntaxes, Configurable, IdentifierConfiguration, ConnectionDecorator, LoggingConnectionDecorator.SQLWarningHandler
- public class SolidDBDictionary 
- extends DBDictionary
Dictionary for SolidDB database.
 
 
| Field Summary | 
|  String | autoAssignSequenceNameThe global sequence name to use for auto-assign simulation.
 | 
|  String | lockingModePossible values for LockingMode are "PESSIMISTIC" and "OPTIMISTIC"
 | 
|  boolean | openjpa3GeneratedKeyNamesFlag to use OpenJPA 0.3 style naming for auto assign sequence name and
 trigger name for backwards compatibility.
 | 
|  boolean | storeIsMemorySets whether tables are to be located in-memory or on disk.
 | 
|  boolean | useTriggersForAutoAssignIf true, then simulate auto-assigned values in SolidDB by
 using a trigger that inserts a sequence value into the
 primary key value when a row is inserted.
 | 
 
| 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, roundTimeToMillisec, 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, trimStringColumns, trimTrailingFunction, typeModifierSet, UNLIMITED, useGetBestRowIdentifierForPrimaryKeys, useGetBytesForBlobs, useGetObjectForBlobs, useGetStringForClobs, useJDBC4SetBinaryStream, useNativeSequenceCache, useSchemaName, useSetBytesForBlobs, useSetStringForClobs, useWildCardForCount, validationSQL, varbinaryTypeName, varcharTypeName, VENDOR_DATADIRECT, VENDOR_OTHER, xmlTypeEncoding, xmlTypeName | 
 
 
 
| Method Summary | 
| protected  void | appendSelect(SQLBuffer selectSQL,
             Object alias,
             Select sel,
             int idx)Append
 elemtoselectSQL. | 
|  String | convertSchemaCase(DBIdentifier objectName)Convert the specified schema name to a name that the database will
 be able to understand.
 | 
|  void | endConfiguration()Invoked upon completion of bean property configuration for this object.
 | 
| protected  String | getAutoGenSeqName(Column col)
 | 
|  String[] | getCreateTableSQL(Table table,
                  SchemaGroup group)Return a series of SQL statements to create the given table, complete
 with columns.
 | 
| protected  String | getGeneratedKeyTriggerName(Column col)Trigger name for simulating auto-assign values on the given column.
 | 
| protected  String | getGenKeySeqName(String query,
                 Column col)
 | 
| protected  String | getOpenJPA3GeneratedKeySequenceName(Column col)Returns a OpenJPA 3-compatible name for an auto-assign sequence.
 | 
| protected  String | getOpenJPA3GeneratedKeyTriggerName(Column col)Returns a OpenJPA 3-compatible name for an auto-assign trigger.
 | 
| 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 | isFatalException(int subtype,
                 SQLException ex)Determine if the given SQL Exception is fatal or recoverable (such as a timeout).
 | 
|  boolean | isSystemIndex(DBIdentifier name,
              Table table)This method is used to filter system indexes from database metadata.
 | 
|  boolean | isSystemSequence(DBIdentifier name,
                 DBIdentifier schema,
                 boolean targetSchema)This method is used to filter system sequences from database metadata.
 | 
|  boolean | needsToCreateIndex(Index idx,
                   Table table,
                   Unique[] uniques)
 | 
| protected  ForeignKey | newForeignKey(ResultSet fkMeta)Solid does not support deferred referential integrity checking.
 | 
| protected  boolean | sequenceExists(String schemaName,
               String seqName,
               SchemaGroup group)
 | 
|  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.
 | 
|  void | substring(SQLBuffer buf,
          FilterValue str,
          FilterValue start,
          FilterValue length)Invoke this database's substring function.
 | 
 
| Methods inherited from class org.apache.openjpa.jdbc.sql.DBDictionary | 
| addCastAsType, addErrorCode, appendCast, appendLength, appendNumericCast, appendSelectRange, appendSize, appendUpdates, appendXmlComparison, assertSupport, calculateValue, canOuterJoin, checkNameLength, checkNameLength, checkNameLength, closeDataSource, combineForeignKey, comment, comparison, configureNamingRules, connectedConfiguration, convertSchemaCase, copy, copy, createIndexIfNecessary, createIndexIfNecessary, decorate, deleteStream, delimitAll, executeQuery, fromDBName, getAddColumnSQL, getAddForeignKeySQL, getAddPrimaryKeySQL, 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, getColumns, getColumns, getConversionKey, getCreateIndexSQL, getCreateSequenceSQL, getCreateTableSQL, getDate, getDate, getDeclareColumnSQL, getDefaultIdentifierRule, getDefaultSchemaName, getDeleteTableContentsSQL, getDeleteTargets, getDelimitedCase, getDelimitIdentifiers, getDouble, getDropColumnSQL, getDropForeignKeySQL, getDropIndexSQL, getDropPrimaryKeySQL, getDropSequenceSQL, getDropTableSQL, getFloat, getForeignKeyConstraintSQL, getForUpdateClause, getFrom, getFromSelect, getFullIdentifier, getFullName, getFullName, getFullName, getGeneratedKey, getGeneratedKeySequenceName, getIdentifierConcatenator, getIdentifierDelimiter, getIdentifierRule, getIdentifierRules, getIdentityColumnName, getImportedKeys, getImportedKeys, getImportedKeys, getImportedKeys, getIndexInfo, getIndexInfo, getInt, getInvalidColumnWordSet, getIsNotNullSQL, getIsNullSQL, getJDBCType, getJDBCType, getJDBCType, getKey, getLeadingDelimiter, getLOBStream, getLocale, getLog, getLong, getMarkerForInsertUpdate, getNamingUtil, getNumber, getObject, getPlaceholderValueString, getPreferredType, getPrimaryKeyConstraintSQL, 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, isImplicitJoin, isSelect, isSystemIndex, isSystemSequence, isSystemSequence, isSystemTable, isSystemTable, makeNameValid, makeNameValid, makeNameValid, makeNameValid, matchErrorState, mathFunction, narrow, needsToCreateIndex, newColumn, newIndex, newPrimaryKey, newSequence, newStoreException, 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, setUnknown, setXMLTypeEncoding, shorten, startConfiguration, storageWarning, supportsDeferredForeignKeyConstraints, supportsDeferredUniqueConstraints, supportsDeleteAction, supportsIsolationForUpdate, supportsLocking, supportsRandomAccessResultSet, supportsUpdateAction, toBulkOperation, toDBName, toDBName, toDelete, toLong, toNativeJoin, toOperation, 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 | 
 
storeIsMemory
public boolean storeIsMemory
- Sets whether tables are to be located in-memory or on disk.
 Creating in-memory tables should append "STORE MEMORY" to the 
 "CREATE TABLE" statement. Creating disk-based tables should 
 append "STORE DISK". Since cursor hold over commit can not apply 
 to M-tables (which will cause SOLID Table Error 13187: The cursor 
 cannot continue accessing M-tables after the transaction has committed 
 or aborted. The statement must be re-executed.), the default is 
 STORE DISK.
 The default concurrency control mechanism depends on the table type:
    Disk-based tables (D-tables) are by default optimistic.
    Main-memory tables (M-tables) are always pessimistic.
 Since OpenJPA applications expects lock waits (as usually is done with 
 normal pessimistic databases), the server should be set to the pessimistic mode. 
 The optimistic mode is about not waiting for the locks at all. That increases 
 concurrency but requires more programming. The pessimistic mode with the 
 READ COMMITTED isolation level (default) should get as much concurrency as one 
 might need. The pessimistic locking mode can be set in solid.ini:  
    [General]
        Pessimistic=yes
 
 
useTriggersForAutoAssign
public boolean useTriggersForAutoAssign
- If true, then simulate auto-assigned values in SolidDB by
 using a trigger that inserts a sequence value into the
 primary key value when a row is inserted.
 
 
autoAssignSequenceName
public String autoAssignSequenceName
- The global sequence name to use for auto-assign simulation.
 
 
openjpa3GeneratedKeyNames
public boolean openjpa3GeneratedKeyNames
- Flag to use OpenJPA 0.3 style naming for auto assign sequence name and
 trigger name for backwards compatibility.
 
 
lockingMode
public String lockingMode
- Possible values for LockingMode are "PESSIMISTIC" and "OPTIMISTIC"
 
 
SolidDBDictionary
public SolidDBDictionary()
endConfiguration
public void endConfiguration()
- Description copied from interface: Configurable
- Invoked upon completion of bean property configuration for this object.
 
- 
- Specified by:
- endConfigurationin interface- Configurable
- Overrides:
- endConfigurationin class- DBDictionary
 
- 
 
getCreateTableSQL
public String[] getCreateTableSQL(Table table,
                                  SchemaGroup group)
- 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:
- getCreateTableSQLin class- DBDictionary
 
- 
 
sequenceExists
protected boolean sequenceExists(String schemaName,
                                 String seqName,
                                 SchemaGroup group)
- 
 
getGeneratedKeyTriggerName
protected String getGeneratedKeyTriggerName(Column col)
- Trigger name for simulating auto-assign values on the given column.
 
- 
 
getOpenJPA3GeneratedKeySequenceName
protected String getOpenJPA3GeneratedKeySequenceName(Column col)
- Returns a OpenJPA 3-compatible name for an auto-assign sequence.
 
- 
 
getOpenJPA3GeneratedKeyTriggerName
protected String getOpenJPA3GeneratedKeyTriggerName(Column col)
- Returns a OpenJPA 3-compatible name for an auto-assign trigger.
 
- 
 
getAutoGenSeqName
protected String getAutoGenSeqName(Column col)
- 
 
getGenKeySeqName
protected String getGenKeySeqName(String query,
                                  Column col)
- 
- Overrides:
- getGenKeySeqNamein class- DBDictionary
 
- 
 
convertSchemaCase
public String convertSchemaCase(DBIdentifier objectName)
- Description copied from class: DBDictionary
- Convert the specified schema name to a name that the database will
 be able to understand.
 
- 
- Overrides:
- convertSchemaCasein class- DBDictionary
 
- 
 
substring
public void substring(SQLBuffer buf,
                      FilterValue str,
                      FilterValue start,
                      FilterValue length)
- Description copied from class: DBDictionary
- Invoke this database's substring function.
 Numeric parameters are inlined if possible. This is to handle grouping by SUBSTRING -
 most databases do not allow parameter binding in this case.
 
- 
- Overrides:
- substringin class- DBDictionary
 
- 
- Parameters:
- buf- the SQL buffer to write the substring invocation to
- str- a query value representing the target string
- start- a query value representing the start index
- length- a query value representing the length of substring, or null for none
 
indexOf
public void indexOf(SQLBuffer buf,
                    FilterValue str,
                    FilterValue find,
                    FilterValue start)
- Description copied from class: DBDictionary
- Invoke this database's indexOf function.
 
- 
- Overrides:
- indexOfin class- DBDictionary
 
- 
- Parameters:
- buf- the SQL buffer to write the indexOf invocation to
- str- a query value representing the target string
- find- a query value representing the search string
- start- a query value representing the start index, or null
 to start at the beginning
 
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:
- isSystemIndexin class- DBDictionary
 
- 
- Parameters:
- name- the index name
- table- the index table
 
isSystemSequence
public boolean isSystemSequence(DBIdentifier name,
                                DBIdentifier schema,
                                boolean targetSchema)
- Description copied from class: DBDictionary
- This method is used to filter system sequences from database metadata.
 Return true if the given sequence represents a system sequence that
 should not appear in the schema definition. Returns true if system
 schema by default.
 
- 
- Overrides:
- isSystemSequencein class- DBDictionary
 
- 
- Parameters:
- name- the table name
- schema- the table schema; may be null
- targetSchema- if true, then the given schema was listed by
 the user as one of his schemas
 
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:
- setBigDecimalin 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:
- setDoublein class- DBDictionary
 
- 
- Throws:
- SQLException
 
needsToCreateIndex
public boolean needsToCreateIndex(Index idx,
                                  Table table,
                                  Unique[] uniques)
- 
- Overrides:
- needsToCreateIndexin class- DBDictionary
 
- 
 
getSequencesSQL
protected String getSequencesSQL(String schemaName,
                                 String sequenceName)
- Description copied from class: DBDictionary
- Return the SQL needed to select the list of sequences.
 
- 
- Overrides:
- getSequencesSQLin class- DBDictionary
 
- 
 
getSequencesSQL
protected String getSequencesSQL(DBIdentifier schemaName,
                                 DBIdentifier sequenceName)
- 
- Overrides:
- getSequencesSQLin class- DBDictionary
 
- 
 
appendSelect
protected void appendSelect(SQLBuffer selectSQL,
                            Object alias,
                            Select sel,
                            int idx)
- Description copied from class: DBDictionary
- Append elemtoselectSQL.
 
- 
- Overrides:
- appendSelectin class- DBDictionary
 
- 
- Parameters:
- selectSQL- The SQLBuffer to append to.
 
newForeignKey
protected ForeignKey newForeignKey(ResultSet fkMeta)
                            throws SQLException
- Solid does not support deferred referential integrity checking.
 
- 
- Overrides:
- newForeignKeyin class- DBDictionary
 
- 
- Throws:
- SQLException
 
isFatalException
public boolean isFatalException(int subtype,
                                SQLException ex)
- Description copied from class: DBDictionary
- Determine if the given SQL Exception is fatal or recoverable (such as a timeout).
 This implementation always returns true (i.e. all exceptions are fatal).
 The current dictionary implementation can overwrite this method to mark certain
 exception conditions as recoverable error.
 
- 
- Overrides:
- isFatalExceptionin class- DBDictionary
 
- 
- Parameters:
- subtype- A constant indicating the category of error as defined in- StoreException.
- ex- original SQL Exception as raised by the database driver.
- Returns:
- false if the error is fatal.
 
Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.