kodo.jdbc.sql
Class EmpressDictionary
java.lang.Object
|
+--kodo.jdbc.sql.DBDictionary
|
+--kodo.jdbc.sql.EmpressDictionary
- All Implemented Interfaces:
- Configurable, ConnectionDecorator
- public class EmpressDictionary
- extends DBDictionary
Dictionary for Empress using ODBC server combined with their
type 2 driver. This dictionary may issues with other
driver/topology configurations.
Empress does not allow multiple connections to read rows
read in a transaction, effectively forcing pessimistic transactions
regardless of javax.jdo.option.Optimistic. To allow users to use
optimistic transactions in a multi-connection evironment, you
must set the AllowConcurrentRead setting to true in addition
to JDO options.
Empress has the following additional limitations:
- Foreign keys are quite limited in Empress and it is recommended
that these be created by hand.
- Batching can be unreliable. Using BatchLimit=0 is strongly
recommended.
- Using AllowConcurrentRead should be accompanied by
SimulateLocking=true
- Connections should be rolled back on return to ensure locks
are released (see Kodo default DataSource documentation.
- Certain outer joins requiring parameters in a subselect is not
supported by Empress and may under certain configurations cause
size () calls on query results and LRS fields to throw an exception.
- Certain aggregate functions are not supported.
Fields inherited from class kodo.jdbc.sql.DBDictionary |
arrayTypeName, autoIncrementClause, autoIncrementTypeName, batchLimit, batchParameterLimit, bigintTypeName, binaryTypeName, bitTypeName, blobTypeName, booleanTypeName, catalogSeparator, CENTI, charTypeName, clobTypeName, conf, connected, CONS_NAME_AFTER, CONS_NAME_BEFORE, CONS_NAME_MID, constraintNameMode, createPrimaryKeys, crossJoinClause, datePrecision, dateTypeName, DECI, decimalTypeName, defaultSchemaName, distinctCountColumnSeparator, distinctTypeName, doubleTypeName, driverVendor, fixedSizeTypeNameSet, floatTypeName, forUpdateClause, initializationSQL, innerJoinClause, integerTypeName, javaObjectTypeName, joinSyntax, lastGeneratedKeyQuery, log, longVarbinaryTypeName, longVarcharTypeName, maxAutoIncrementNameLength, maxCharacterFieldLength, maxColumnNameLength, maxForeignKeyNameLength, maxIndexesPerTable, maxIndexNameLength, maxPrimaryKeyNameLength, maxTableNameLength, MICRO, MILLI, NANO, nullTypeName, numericTypeName, otherTypeName, outerJoinClause, platform, RANGE_POST_DISTINCT, RANGE_POST_SELECT, RANGE_PRE_DISTINCT, rangePosition, realTypeName, refTypeName, requiresAliasForSubselect, requiresAutoCommitForMetadata, requiresConditionForCrossJoin, reservedWords, reservedWordSet, SCHEMA_CASE_LOWER, SCHEMA_CASE_PRESERVE, SCHEMA_CASE_UPPER, schemaCase, SEC, simulateLocking, smallintTypeName, storageLimitationsFatal, storeCharsAsNumbers, storeLargeNumbersAsStrings, stringLengthFunction, structTypeName, substringFunctionName, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsAutoIncrement, supportsCascadeDeleteAction, supportsDefaultDeleteAction, supportsDeferredConstraints, supportsForeignKeys, supportsHaving, supportsLockingWithDistinctClause, supportsLockingWithInnerJoin, supportsLockingWithMultipleTables, supportsLockingWithOrderClause, supportsLockingWithOuterJoin, supportsLockingWithSelectRange, supportsMultipleNontransactionalResultSets, supportsNullDeleteAction, supportsNullTableForGetColumns, supportsNullTableForGetImportedKeys, supportsNullTableForGetIndexInfo, supportsNullTableForGetPrimaryKeys, supportsQueryTimeout, supportsRestrictDeleteAction, supportsSchemaForGetColumns, supportsSchemaForGetTables, supportsSelectEndIndex, supportsSelectForUpdate, supportsSelectStartIndex, supportsSubselect, supportsTotalCountsForBatch, supportsUpdateCountsForBatch, systemSchemas, systemSchemaSet, systemTables, systemTableSet, tableForUpdateClause, tableTypes, timestampTypeName, timeTypeName, tinyintTypeName, toLowerCaseFunction, toUpperCaseFunction, useGetBestRowIdentifierForPrimaryKeys, useGetBytesForBlobs, useGetObjectForBlobs, useGetStringForClobs, useSchemaName, useSetBytesForBlobs, useSetStringForClobs, validationSQL, varbinaryTypeName, varcharTypeName, VENDOR_DATADIRECT, VENDOR_OTHER |
Method Summary |
String[] |
getDropColumnSQL(Column column)
Return a series of SQL statements to drop the given column from
its table. |
boolean |
isSystemIndex(String name,
Table table)
This method is used to filter system indexes from database metadata. |
void |
setDouble(PreparedStatement stmnt,
int idx,
double val,
Column col)
Set the given value as a parameter to the statement. |
void |
setFloat(PreparedStatement stmnt,
int idx,
float val,
Column col)
Set the given value as a parameter to the statement. |
SQLBuffer |
toSelect(SQLBuffer selects,
SQLBuffer from,
SQLBuffer where,
SQLBuffer group,
SQLBuffer having,
SQLBuffer order,
boolean distinct,
boolean forUpdate,
long startIdx,
long endIdx)
Combine the given components into a SELECT statement. |
Methods inherited from class kodo.jdbc.sql.DBDictionary |
appendSelectRange, appendSize, assertSupport, canBatch, canOuterJoin, connectedConfiguration, convertSchemaCase, decorate, endConfiguration, getAddColumnSQL, getAddForeignKeySQL, getAddPrimaryKeySQL, getArray, getAsciiStream, getBigDecimal, getBigInteger, getBinaryStream, getBlob, getBlobObject, getBoolean, getByte, getBytes, getCatalogNameForMetadata, getChar, getCharacterStream, getClob, getClobString, getColumnNameForMetadata, getColumns, getCreateIndexSQL, getCreateTableSQL, getDate, getDate, getDeclareColumnSQL, getDouble, getDropForeignKeySQL, getDropIndexSQL, getDropPrimaryKeySQL, getDropTableSQL, getFloat, getForeignKeyConstraintSQL, getFrom, getFromSelect, getFullName, getFullName, getGeneratedKey, getGeneratedKeySequenceName, getImportedKeys, getIndexInfo, getInt, getJDBCType, getLocale, getLong, getNumber, getObject, getPreferredType, getPrimaryKeyConstraintSQL, getPrimaryKeys, getPrimaryKeysFromBestRowIdentifier, getPrimaryKeysFromGetPrimaryKeys, getRef, getSchemaNameForMetadata, getSelects, getShort, getString, getTableNameForMetadata, getTables, getTime, getTimestamp, getTypeName, getValidColumnName, getValidForeignKeyName, getValidIndexName, getValidPrimaryKeyName, getValidTableName, getWhere, indexOf, isSystemTable, makeNameValid, newColumn, newDataStoreException, newForeignKey, newIndex, newPrimaryKey, newTable, refSchemaComponents, replaceMapping, replaceMapping, replaceMappingFactory, replaceSchemaFactory, serialize, setArray, setArray, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBigInteger, setBigInteger, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlobObject, setBlobObject, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setChar, setChar, setCharacterStream, setCharacterStream, setClob, setClob, setClobString, setClobString, setConfiguration, setDate, setDate, setDate, setDate, setDouble, setFloat, setInt, setInt, setJoinSyntax, setLocale, setLocale, setLong, setLong, setNull, setNull, setObject, setObject, setRef, setRef, setShort, setShort, setString, setString, setTime, setTime, setTimestamp, setTimestamp, setUnknown, setUnknown, startConfiguration, storageWarning, substring, supportsLocking, supportsRandomAccessResultSet, toNativeJoin, toSelect, toSelectCount, toSQL92Join, toTraditionalJoin |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
allowConcurrentRead
public boolean allowConcurrentRead
- This setting inserts "BYPASS" after every "SELECT". This
allows for multiple transactional reads of the same row
from different connections at the expense of loss of
pessimistic locking. Defaults to false.
EmpressDictionary
public EmpressDictionary()
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
- Following copied from class:
kodo.jdbc.sql.DBDictionary
- Parameters:
name
- the index nametable
- the index table
toSelect
public SQLBuffer toSelect(SQLBuffer selects,
SQLBuffer from,
SQLBuffer where,
SQLBuffer group,
SQLBuffer having,
SQLBuffer order,
boolean distinct,
boolean forUpdate,
long startIdx,
long endIdx)
- Description copied from class:
DBDictionary
- Combine the given components into a SELECT statement.
- Overrides:
toSelect
in class DBDictionary
getDropColumnSQL
public String[] getDropColumnSQL(Column column)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to drop the given column from
its table. Return an empty array if operation not supported. The
DBMetaData
is checked for support automatically. Returns
ALTER TABLE <table name> DROP COLUMN <col name>
by default.
- Overrides:
getDropColumnSQL
in class DBDictionary
setFloat
public void setFloat(PreparedStatement stmnt,
int idx,
float val,
Column col)
throws SQLException
- Description copied from class:
DBDictionary
- Set the given value as a parameter to the statement.
- Overrides:
setFloat
in class DBDictionary
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
Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.