Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 3.4.1 generated on May 30 2006
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## kodo.jdbc.sql
Class SybaseDictionary

    java.lang.Object
      |
      +--kodo.jdbc.sql.DBDictionary
            |
            +--kodo.jdbc.sql.AbstractSQLServerDictionary
                  |
                  +--kodo.jdbc.sql.SybaseDictionary

All Implemented Interfaces:
  Configurable, ConnectionDecorator, LoggingConnectionDecorator.SQLWarningHandler

public class SybaseDictionary
extends AbstractSQLServerDictionary

Dictionary for Sybase.

The main point of interest is that by default, every table that is created will have a unique column named "UNQ_INDEX" of the "IDENTITY" type. Kodo will not ever utilize this column. However, due to internal Sybase restrictions, this column is required in order to support pessimistic (datastore) locking, since Sybase requires that any tables in a "SELECT ... FOR UPDATE" clause have a unique index that is not included in the list of columns, as described in the Sybase documentation. This behavior can be surpressed by setting the dictionary property `CreateIdentityColumn=false`. The name of the unique column can be changed by setting the property `IdentityColumnName=COLUMN_NAME`.

A good Sybase type reference is can be found here.

Field Summary
`boolean` | `createIdentityColumn` If true, then whenever the `schematool` creates a table, it will append an additional IDENTITY column to the table's creation SQL.
`String` | `identityColumnName` If `createIdentityColumn` is true, then the `identityColumnName` will be the name of the additional unique column that will be created.

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_LOCK, 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`

Constructor Summary
`SybaseDictionary()`

Method Summary
`Connection` | `decorate(Connection conn)` Decorate the given connection if needed.
`void` | `endConfiguration()` Invoked upon completion of bean property configuration for this object.
`String[]` | `getAddForeignKeySQL(ForeignKey fk)` Return a series of SQL statements to add the given foreign key to its table.
`String[]` | `getCreateTableSQL(Table table)` Return a series of SQL statements to create the given table, complete with columns.
`protected String` | `getDeclareColumnSQL(Column col, boolean alter)` Return the declaration SQL for the given column.
`String[]` | `getDropColumnSQL(Column column)` Return a series of SQL statements to drop the given column from its table.
`int` | `getJDBCType(int metaTypeCode, boolean lob)` Return the preferred `Types` constant for the given `JDBCTypes` constant.
`void` | `refSchemaComponents(Table table)` Increment the reference count of any table components that this dictionary adds that are not used by mappings.
`void` | `setBigInteger(PreparedStatement stmnt, int idx, BigInteger val, Column col)` Set the given value as a parameter to the statement.

Methods inherited from class kodo.jdbc.sql.AbstractSQLServerDictionary
`appendSelectRange, getColumns, getFullName, indexOf, setNull, substring`

Methods inherited from class kodo.jdbc.sql.DBDictionary
`appendSize, assertSupport, canBatch, canOuterJoin, connectedConfiguration, convertSchemaCase, getAddColumnSQL, getAddPrimaryKeySQL, getArray, getAsciiStream, getBigDecimal, getBigInteger, getBinaryStream, getBlob, getBlobObject, getBoolean, getByte, getBytes, getCatalogNameForMetadata, getChar, getCharacterStream, getClob, getClobString, getColumnNameForMetadata, getCreateIndexSQL, getDate, getDate, getDouble, getDropForeignKeySQL, getDropIndexSQL, getDropPrimaryKeySQL, getDropTableSQL, getFloat, getForeignKeyConstraintSQL, getFrom, getFromSelect, getFullName, getGeneratedKey, getGeneratedKeySequenceName, getImportedKeys, getIndexInfo, getInt, 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, handleWarning, isSystemIndex, isSystemTable, makeNameValid, newColumn, newDataStoreException, newForeignKey, newIndex, newPrimaryKey, newTable, replaceMapping, replaceMapping, replaceMappingFactory, replaceSchemaFactory, serialize, setArray, setArray, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, 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, setDouble, setFloat, setFloat, setInt, setInt, setJoinSyntax, setLocale, setLocale, setLong, setLong, setNull, setObject, setObject, setRef, setRef, setShort, setShort, setString, setString, setTime, setTime, setTimestamp, setTimestamp, setUnknown, setUnknown, startConfiguration, storageWarning, supportsLocking, supportsRandomAccessResultSet, toNativeJoin, toSelect, toSelect, toSelectCount, toSQL92Join, toTraditionalJoin`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### createIdentityColumn

    public boolean createIdentityColumn

  If true, then whenever the `schematool` creates a table, it will append an additional IDENTITY column to the table's creation SQL. This is so Sybase will be able to perform `SELECT...FOR UPDATE` statements.

### identityColumnName

    public String identityColumnName

  If `createIdentityColumn` is true, then the `identityColumnName` will be the name of the additional unique column that will be created.

Constructor Detail

### SybaseDictionary

    public SybaseDictionary()

Method Detail

### getJDBCType

    public int getJDBCType(int metaTypeCode,
                           boolean lob)

  Description copied from class: `DBDictionary`
  Return the preferred `Types` constant for the given `JDBCTypes` constant.
  Overrides:
    `getJDBCType` in class `DBDictionary`

### setBigInteger

    public void setBigInteger(PreparedStatement stmnt,
                              int idx,
                              BigInteger val,
                              Column col)
                       throws SQLException

  Description copied from class: `DBDictionary`
  Set the given value as a parameter to the statement.
  Overrides:
    `setBigInteger` in class `DBDictionary`

### getAddForeignKeySQL

    public String[] getAddForeignKeySQL(ForeignKey fk)

  Description copied from class: `DBDictionary`
  Return a series of SQL statements to add the given foreign key to its table. Return an empty array if operation not supported. Returns `ALTER TABLE <table name> ADD <fk cons sql >` by default.
  Overrides:
    `getAddForeignKeySQL` 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`

### getDeclareColumnSQL

    protected String getDeclareColumnSQL(Column col,
                                         boolean alter)

  Description copied from class: `DBDictionary`
  Return the declaration SQL for the given column. This method is used for each column from within `DBDictionary.getCreateTableSQL(kodo.jdbc.schema.Table)` and `DBDictionary.getAddColumnSQL(kodo.jdbc.schema.Column)`.
  Overrides:
    `getDeclareColumnSQL` 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`

### refSchemaComponents

    public void refSchemaComponents(Table table)

  Description copied from class: `DBDictionary`
  Increment the reference count of any table components that this dictionary adds that are not used by mappings. Does nothing by default.
  Overrides:
    `refSchemaComponents` in class `DBDictionary`

### endConfiguration

    public void endConfiguration()

  Description copied from interface: `Configurable`
  Invoked upon completion of bean property configuration for this object.
  Overrides:
    `endConfiguration` in class `DBDictionary`

### decorate

    public Connection decorate(Connection conn)
                        throws SQLException

  Description copied from class: `DBDictionary`
  Decorate the given connection if needed. Some databases require special handling for JDBC bugs. This implementation issues any `DBDictionary.initializationSQL` that has been set for the dictionary but does not decoreate the connection.
  Overrides:
    `decorate` in class `DBDictionary`

Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 3.4.1 generated on May 30 2006
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.