SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

kodo.jdbc.sql
Class DBDictionary

java.lang.Object
  |
  +--kodo.jdbc.sql.DBDictionary
All Implemented Interfaces:
Configurable, ConnectionDecorator
Direct Known Subclasses:
AbstractSQLServerDictionary, AccessDictionary, CacheDictionary, DB2Dictionary, DerbyDictionary, EmpressDictionary, FoxProDictionary, HSQLDictionary, InformixDictionary, InterbaseDictionary, JDataStoreDictionary, MySQLDictionary, OracleDictionary, PointbaseDictionary, PostgresDictionary

public class DBDictionary
extends Object
implements Configurable, ConnectionDecorator

Class which allows the creation of SQL dynamically, in a database agnostic fashion. Subclass for the nuances of different data stores.


Field Summary
 String arrayTypeName
           
 String autoIncrementClause
           
 String autoIncrementTypeName
           
 int batchLimit
           
 int batchParameterLimit
           
 String bigintTypeName
           
 String binaryTypeName
           
 String bitTypeName
           
 String blobTypeName
           
 String booleanTypeName
           
 String catalogSeparator
           
protected static int CENTI
           
 String charTypeName
           
 String clobTypeName
           
protected  JDBCConfiguration conf
           
protected  boolean connected
           
static String CONS_NAME_AFTER
           
static String CONS_NAME_BEFORE
           
static String CONS_NAME_MID
           
 String constraintNameMode
           
 boolean createPrimaryKeys
           
 String crossJoinClause
           
 int datePrecision
           
 String dateTypeName
           
protected static int DECI
           
 String decimalTypeName
           
 String defaultSchemaName
           
 String distinctCountColumnSeparator
           
 String distinctTypeName
           
 String doubleTypeName
           
 String driverVendor
           
protected  Set fixedSizeTypeNameSet
           
 String floatTypeName
           
 String forUpdateClause
           
 String initializationSQL
           
 String innerJoinClause
           
 String integerTypeName
           
 String javaObjectTypeName
           
 int joinSyntax
           
 String lastGeneratedKeyQuery
           
protected  Log log
           
 String longVarbinaryTypeName
           
 String longVarcharTypeName
           
 int maxAutoIncrementNameLength
           
 int maxCharacterFieldLength
           
 int maxColumnNameLength
           
 int maxForeignKeyNameLength
           
 int maxIndexesPerTable
           
 int maxIndexNameLength
           
 int maxPrimaryKeyNameLength
           
 int maxTableNameLength
           
protected static int MICRO
           
protected static int MILLI
           
protected static int NANO
           
 String nullTypeName
           
 String numericTypeName
           
 String otherTypeName
           
 String outerJoinClause
           
 String platform
           
protected static int RANGE_POST_DISTINCT
           
protected static int RANGE_POST_SELECT
           
protected static int RANGE_PRE_DISTINCT
           
 int rangePosition
           
 String realTypeName
           
 String refTypeName
           
 boolean requiresAliasForSubselect
           
 boolean requiresAutoCommitForMetadata
           
 boolean requiresConditionForCrossJoin
           
 String reservedWords
           
protected  Set reservedWordSet
           
static String SCHEMA_CASE_LOWER
           
static String SCHEMA_CASE_PRESERVE
           
static String SCHEMA_CASE_UPPER
           
 String schemaCase
           
protected static int SEC
           
 boolean simulateLocking
           
 String smallintTypeName
           
 boolean storageLimitationsFatal
           
 boolean storeCharsAsNumbers
           
 boolean storeLargeNumbersAsStrings
           
 String stringLengthFunction
           
 String structTypeName
           
 String substringFunctionName
           
 boolean supportsAlterTableWithAddColumn
           
 boolean supportsAlterTableWithDropColumn
           
 boolean supportsAutoIncrement
           
 boolean supportsCascadeDeleteAction
           
 boolean supportsDefaultDeleteAction
           
 boolean supportsDeferredConstraints
           
 boolean supportsForeignKeys
           
 boolean supportsHaving
           
 boolean supportsLockingWithDistinctClause
           
 boolean supportsLockingWithInnerJoin
           
 boolean supportsLockingWithMultipleTables
           
 boolean supportsLockingWithOrderClause
           
 boolean supportsLockingWithOuterJoin
           
 boolean supportsLockingWithSelectRange
           
 boolean supportsMultipleNontransactionalResultSets
           
 boolean supportsNullDeleteAction
           
 boolean supportsNullTableForGetColumns
           
 boolean supportsNullTableForGetImportedKeys
           
 boolean supportsNullTableForGetIndexInfo
           
 boolean supportsNullTableForGetPrimaryKeys
           
 boolean supportsQueryTimeout
           
 boolean supportsRestrictDeleteAction
           
 boolean supportsSchemaForGetColumns
           
 boolean supportsSchemaForGetTables
           
 boolean supportsSelectEndIndex
           
 boolean supportsSelectForUpdate
           
 boolean supportsSelectStartIndex
           
 boolean supportsSubselect
           
 boolean supportsTotalCountsForBatch
           
 boolean supportsUpdateCountsForBatch
           
 String systemSchemas
           
protected  Set systemSchemaSet
           
 String systemTables
           
protected  Set systemTableSet
           
 String tableForUpdateClause
           
 String tableTypes
           
 String timestampTypeName
           
 String timeTypeName
           
 String tinyintTypeName
           
 String toLowerCaseFunction
           
 String toUpperCaseFunction
           
 boolean useGetBestRowIdentifierForPrimaryKeys
           
 boolean useGetBytesForBlobs
           
 boolean useGetObjectForBlobs
           
 boolean useGetStringForClobs
           
 boolean useSchemaName
           
 boolean useSetBytesForBlobs
           
 boolean useSetStringForClobs
           
 String validationSQL
           
 String varbinaryTypeName
           
 String varcharTypeName
           
static String VENDOR_DATADIRECT
           
static String VENDOR_OTHER
           
 
Constructor Summary
DBDictionary()
           
 
Method Summary
protected  void appendSelectRange(SQLBuffer buf, long start, long end)
          If this dictionary can select ranges, use this method to append the range SQL.
protected  String appendSize(Column col, String typeName)
          Helper method to add size properties to the specified type.
 void assertSupport(boolean feature, String property)
          Assert that the given dictionary flag is true.
 boolean canBatch(Column col)
          Returns type if the specified column can be included in batch statements.
 boolean canOuterJoin(int syntax, ForeignKey fk)
          Returns if the given foreign key can be eagerly loaded using other joins.
 void connectedConfiguration(Connection conn)
          This method is called when the dictionary first sees any connection.
protected  String convertSchemaCase(String objectName)
          Convert the specified schema name to a name that the database will be able to understand.
 Connection decorate(Connection conn)
          Decorate the given connection if needed.
 void endConfiguration()
          Invoked upon completion of bean property configuration for this object.
 String[] getAddColumnSQL(Column column)
          Return a series of SQL statements to add the given column to its table.
 String[] getAddForeignKeySQL(ForeignKey fk)
          Return a series of SQL statements to add the given foreign key to its table.
 String[] getAddPrimaryKeySQL(PrimaryKey pk)
          Return a series of SQL statements to add the given primary key to its table.
 Array getArray(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 InputStream getAsciiStream(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 BigDecimal getBigDecimal(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 BigInteger getBigInteger(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 InputStream getBinaryStream(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Blob getBlob(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Object getBlobObject(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 boolean getBoolean(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 byte getByte(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 byte[] getBytes(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getCatalogNameForMetadata(String catalogName)
          Returns the catalog name that will be used for obtaining information from DatabaseMetaData.
 char getChar(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Reader getCharacterStream(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Clob getClob(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 String getClobString(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getColumnNameForMetadata(String columnName)
          Returns the column name that will be used for obtaining information from DatabaseMetaData.
 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[] getCreateIndexSQL(Index index)
          Return a series of SQL statements to create the given index.
 String[] getCreateTableSQL(Table table)
          Return a series of SQL statements to create the given table, complete with columns.
 Date getDate(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Date getDate(ResultSet rs, int column, Calendar cal)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getDeclareColumnSQL(Column col, boolean alter)
          Return the declaration SQL for the given column.
 double getDouble(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 String[] getDropColumnSQL(Column column)
          Return a series of SQL statements to drop the given column from its table.
 String[] getDropForeignKeySQL(ForeignKey fk)
          Return a series of SQL statements to drop the given foreign key from its table.
 String[] getDropIndexSQL(Index index)
          Return a series of SQL statements to drop the given index.
 String[] getDropPrimaryKeySQL(PrimaryKey pk)
          Return a series of SQL statements to drop the given primary key from its table.
 String[] getDropTableSQL(Table table)
          Return a series of SQL statements to drop the given table.
 float getFloat(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getForeignKeyConstraintSQL(ForeignKey fk)
          Return the declaration SQL for the given foreign key, or null if it is not supported.
protected  SQLBuffer getFrom(Select sel, boolean forUpdate)
          Return the portion of the select statement between the FROM keyword and the WHERE keyword.
protected  SQLBuffer getFromSelect(Select sel, boolean forUpdate)
          Return the FROM clause for a select that selects from a tmp table created by an inner select.
 String getFullName(Index index)
          Returns the full name of the index, including the schema (delimited by the result of catalogSeparator).
 String getFullName(Table table, boolean logical)
          Returns the full name of the table, including the schema (delimited by '.' if logical, else catalogSeparator).
 long getGeneratedKey(Column col, Connection conn)
          Return the last inserted auto increment value for the given column.
protected  String getGeneratedKeySequenceName(Column col)
          Return the sequence name used by databases for the given autoincrement column.
 ForeignKey[] getImportedKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn)
          Reflect on the schema to return foreign keys imported by the given table pattern.
 Index[] getIndexInfo(DatabaseMetaData meta, String catalog, String schemaName, String tableName, boolean unique, boolean approx, Connection conn)
          Reflect on the schema to find indexes matching the given table pattern.
 int getInt(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 int getJDBCType(int metaTypeCode, boolean lob)
          Return the preferred Types constant for the given JDBCTypes constant.
 Locale getLocale(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 long getLong(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Number getNumber(ResultSet rs, int column)
          Returns the specified column value as an unknown numeric type; we try from the most generic to the least generic.
 Object getObject(ResultSet rs, int column, Map map)
          Convert the specified column of the SQL ResultSet to the proper java type.
 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.
 PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn)
          Reflect on the schema to find primary keys for the given table pattern.
protected  PrimaryKey[] getPrimaryKeysFromBestRowIdentifier(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn)
          Reflect on the schema to find primary keys for the given table pattern.
protected  PrimaryKey[] getPrimaryKeysFromGetPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn)
          Reflect on the schema to find primary keys for the given table pattern.
 Ref getRef(ResultSet rs, int column, Map map)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getSchemaNameForMetadata(String schemaName)
          Returns the schema name that will be used for obtaining information from DatabaseMetaData.
protected  SQLBuffer getSelects(Select sel, boolean distinctIdentifiers, boolean forUpdate)
          Return the portion of the select statement between the SELECT keyword and the FROM keyword.
 short getShort(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 String getString(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getTableNameForMetadata(String tableName)
          Returns the table name that will be used for obtaining information from DatabaseMetaData.
 Table[] getTables(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn)
          Reflect on the schema to find tables matching the given name pattern.
 Time getTime(ResultSet rs, int column, Calendar cal)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Timestamp getTimestamp(ResultSet rs, int column, Calendar cal)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getTypeName(Column col)
          Return the preferred database type name for the given column's type from Types.
 String getValidColumnName(String name, Table table)
          Make any necessary changes to the given column name to make it valid for the current DB.
 String getValidForeignKeyName(String name, Table table, Table toTable)
          Make any necessary changes to the given foreign key name to make it valid for the current DB.
 String getValidIndexName(String name, Table table)
          Make any necessary changes to the given index name to make it valid for the current DB.
 String getValidPrimaryKeyName(String name, Table table)
          Make any necessary changes to the given primary key name to make it valid for the current DB.
 String getValidTableName(String name, Schema schema)
          Make any necessary changes to the given table name to make it valid for the current DB.
protected  SQLBuffer getWhere(Select sel, boolean forUpdate)
          Return the WHERE portion of the select statement, or null if no where conditions.
 void indexOf(SQLBuffer buf, FilterValue str, FilterValue find, FilterValue start)
          Invoke this database's indexOf function.
 boolean isSystemIndex(String name, Table table)
          This method is used to filter system indexes from database metadata.
 boolean isSystemTable(String name, String schema, boolean targetSchema)
          This method is used to filter system tables from database metadata.
protected  String makeNameValid(String name, NameSet set, int maxLen)
          Shortens the given name to the given maximum length, then checks that it is not a reserved word.
protected  Column newColumn(ResultSet colMeta)
          Create a new column from the information in the schema metadata.
 JDOException newDataStoreException(String msg, SQLException[] causes, Object failed)
          Return a new JDO exception that wraps causes.
protected  ForeignKey newForeignKey(ResultSet fkMeta)
          Create a new foreign key from the information in the schema metadata.
protected  Index newIndex(ResultSet idxMeta)
          Create a new index from the information in the schema metadata.
protected  PrimaryKey newPrimaryKey(ResultSet pkMeta)
          Create a new primary key from the information in the schema metadata.
protected  Table newTable(ResultSet tableMeta)
          Create a new table from the information in the schema metadata.
 void refSchemaComponents(Table table)
          Increment the reference count of any table components that this dictionary adds that are not used by mappings.
 ClassMapping replaceMapping(ClassMapping mapping)
          Replace the given mapping with one suited to this database, or return the original if no replacement is needed.
 FieldMapping replaceMapping(FieldMapping mapping)
          Replace the given mapping with one suited to this database, or return the original if no replacement is needed.
 MappingFactory replaceMappingFactory(MappingFactory factory)
          Replace the given factory with one suited to this database, or return the original if no replacement is needed.
 SchemaFactory replaceSchemaFactory(SchemaFactory factory)
          Replace the given factory with one suited to this database, or return the original if no replacement is needed.
 byte[] serialize(Object val)
          Return the serialized bytes for the given object.
 void setArray(PreparedStatement stmnt, int idx, Array val)
          Deprecated.  
 void setArray(PreparedStatement stmnt, int idx, Array val, Column col)
          Set the given value as a parameter to the statement.
 void setAsciiStream(PreparedStatement stmnt, int idx, InputStream val, int length)
          Deprecated.  
 void setAsciiStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col)
          Set the given value as a parameter to the statement.
 void setBigDecimal(PreparedStatement stmnt, int idx, BigDecimal val)
          Deprecated.  
 void setBigDecimal(PreparedStatement stmnt, int idx, BigDecimal val, Column col)
          Set the given value as a parameter to the statement.
 void setBigInteger(PreparedStatement stmnt, int idx, BigInteger val)
          Deprecated.  
 void setBigInteger(PreparedStatement stmnt, int idx, BigInteger val, Column col)
          Set the given value as a parameter to the statement.
 void setBinaryStream(PreparedStatement stmnt, int idx, InputStream val, int length)
          Deprecated.  
 void setBinaryStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col)
          Set the given value as a parameter to the statement.
 void setBlob(PreparedStatement stmnt, int idx, Blob val)
          Deprecated.  
 void setBlob(PreparedStatement stmnt, int idx, Blob val, Column col)
          Set the given value as a parameter to the statement.
 void setBlobObject(PreparedStatement stmnt, int idx, Object val)
          Deprecated.  
 void setBlobObject(PreparedStatement stmnt, int idx, Object val, Column col)
          Set the given value as a parameter to the statement.
 void setBoolean(PreparedStatement stmnt, int idx, boolean val)
          Deprecated.  
 void setBoolean(PreparedStatement stmnt, int idx, boolean val, Column col)
          Set the given value as a parameter to the statement.
 void setByte(PreparedStatement stmnt, int idx, byte val)
          Deprecated.  
 void setByte(PreparedStatement stmnt, int idx, byte val, Column col)
          Set the given value as a parameter to the statement.
 void setBytes(PreparedStatement stmnt, int idx, byte[] val)
          Deprecated.  
 void setBytes(PreparedStatement stmnt, int idx, byte[] val, Column col)
          Set the given value as a parameter to the statement.
 void setChar(PreparedStatement stmnt, int idx, char val)
          Deprecated.  
 void setChar(PreparedStatement stmnt, int idx, char val, Column col)
          Set the given value as a parameter to the statement.
 void setCharacterStream(PreparedStatement stmnt, int idx, Reader val, int length)
          Deprecated.  
 void setCharacterStream(PreparedStatement stmnt, int idx, Reader val, int length, Column col)
          Set the given value as a parameter to the statement.
 void setClob(PreparedStatement stmnt, int idx, Clob val)
          Deprecated.  
 void setClob(PreparedStatement stmnt, int idx, Clob val, Column col)
          Set the given value as a parameter to the statement.
 void setClobString(PreparedStatement stmnt, int idx, String val)
          Deprecated.  
 void setClobString(PreparedStatement stmnt, int idx, String val, Column col)
          Set the given value as a parameter to the statement.
 void setConfiguration(Configuration conf)
          Invoked prior to setting bean properties.
 void setDate(PreparedStatement stmnt, int idx, Date val)
          Deprecated.  
 void setDate(PreparedStatement stmnt, int idx, Date val, Calendar cal)
          Deprecated.  
 void setDate(PreparedStatement stmnt, int idx, Date val, Calendar cal, Column col)
          Set the given value as a parameter to the statement.
 void setDate(PreparedStatement stmnt, int idx, Date val, Column col)
          Set the given value as a parameter to the statement.
 void setDouble(PreparedStatement stmnt, int idx, double val)
          Deprecated.  
 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)
          Deprecated.  
 void setFloat(PreparedStatement stmnt, int idx, float val, Column col)
          Set the given value as a parameter to the statement.
 void setInt(PreparedStatement stmnt, int idx, int val)
          Deprecated.  
 void setInt(PreparedStatement stmnt, int idx, int val, Column col)
          Set the given value as a parameter to the statement.
 void setJoinSyntax(String syntax)
          Set the name of the join syntax to use: sql92, traditional, database
 void setLocale(PreparedStatement stmnt, int idx, Locale val)
          Deprecated.  
 void setLocale(PreparedStatement stmnt, int idx, Locale val, Column col)
          Set the given value as a parameter to the statement.
 void setLong(PreparedStatement stmnt, int idx, long val)
          Deprecated.  
 void setLong(PreparedStatement stmnt, int idx, long val, Column col)
          Set the given value as a parameter to the statement.
 void setNull(PreparedStatement stmnt, int idx, int colType)
          Deprecated.  
 void setNull(PreparedStatement stmnt, int idx, int colType, Column col)
          Set the given value as a parameters to the statement.
 void setObject(PreparedStatement stmnt, int idx, Object val, int colType)
          Deprecated.  
 void setObject(PreparedStatement stmnt, int idx, Object val, int colType, Column col)
          Set the given value as a parameters to the statement.
 void setRef(PreparedStatement stmnt, int idx, Ref val)
          Deprecated.  
 void setRef(PreparedStatement stmnt, int idx, Ref val, Column col)
          Set the given value as a parameter to the statement.
 void setShort(PreparedStatement stmnt, int idx, short val)
          Deprecated.  
 void setShort(PreparedStatement stmnt, int idx, short val, Column col)
          Set the given value as a parameter to the statement.
 void setString(PreparedStatement stmnt, int idx, String val)
          Deprecated.  
 void setString(PreparedStatement stmnt, int idx, String val, Column col)
          Set the given value as a parameter to the statement.
 void setTime(PreparedStatement stmnt, int idx, Time val, Calendar cal)
          Deprecated.  
 void setTime(PreparedStatement stmnt, int idx, Time val, Calendar cal, Column col)
          Set the given value as a parameter to the statement.
 void setTimestamp(PreparedStatement stmnt, int idx, Timestamp val, Calendar cal)
          Deprecated.  
 void setTimestamp(PreparedStatement stmnt, int idx, Timestamp val, Calendar cal, Column col)
          Set the given value as a parameter to the statement.
 void setUnknown(PreparedStatement stmnt, int idx, Object val)
          Deprecated.  
 void setUnknown(PreparedStatement stmnt, int idx, Object val, Column col)
          Set a completely unknown parameter into a prepared statement.
 void startConfiguration()
          Invoked before bean property configuration is begun on this object.
protected  void storageWarning(Object orig, Object converted)
          Warn that a particular value could not be stored precisely.
 void substring(SQLBuffer buf, FilterValue str, FilterValue start, FilterValue end)
          Invoke this database's substring function.
 boolean supportsLocking(Select sel)
          Returns true if a "FOR UPDATE" clause can be used for the specified Select object.
 boolean supportsRandomAccessResultSet(Select sel, boolean forUpdate)
          Return false if the given select requires a forward-only result set.
 SQLBuffer toNativeJoin(Join join)
          Use the given join instance to create SQL joining its tables in the database's native syntax.
 SQLBuffer toSelect(Select sel, boolean forUpdate)
          Create a SELECT statement in the proper join syntax for the given instance.
 SQLBuffer toSelect(SQLBuffer selects, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end)
          Combine the given components into a SELECT statement.
 SQLBuffer toSelectCount(Select sel)
          Create a SELECT COUNT statement in the proper join syntax for the given instance.
 SQLBuffer toSQL92Join(Join join, boolean forUpdate, boolean first)
          Use the given join instance to create SQL joining its tables in the SQL92 style.
 SQLBuffer toTraditionalJoin(Join join)
          Use the given join instance to create SQL joining its tables in the traditional style.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VENDOR_OTHER

public static final String VENDOR_OTHER

VENDOR_DATADIRECT

public static final String VENDOR_DATADIRECT

SCHEMA_CASE_UPPER

public static final String SCHEMA_CASE_UPPER

SCHEMA_CASE_LOWER

public static final String SCHEMA_CASE_LOWER

SCHEMA_CASE_PRESERVE

public static final String SCHEMA_CASE_PRESERVE

CONS_NAME_BEFORE

public static final String CONS_NAME_BEFORE

CONS_NAME_MID

public static final String CONS_NAME_MID

CONS_NAME_AFTER

public static final String CONS_NAME_AFTER

RANGE_POST_SELECT

protected static final int RANGE_POST_SELECT

RANGE_PRE_DISTINCT

protected static final int RANGE_PRE_DISTINCT

RANGE_POST_DISTINCT

protected static final int RANGE_POST_DISTINCT

NANO

protected static final int NANO

MICRO

protected static final int MICRO

MILLI

protected static final int MILLI

CENTI

protected static final int CENTI

DECI

protected static final int DECI

SEC

protected static final int SEC

platform

public String platform

driverVendor

public String driverVendor

catalogSeparator

public String catalogSeparator

createPrimaryKeys

public boolean createPrimaryKeys

constraintNameMode

public String constraintNameMode

maxTableNameLength

public int maxTableNameLength

maxColumnNameLength

public int maxColumnNameLength

maxPrimaryKeyNameLength

public int maxPrimaryKeyNameLength

maxForeignKeyNameLength

public int maxForeignKeyNameLength

maxIndexNameLength

public int maxIndexNameLength

maxAutoIncrementNameLength

public int maxAutoIncrementNameLength

maxIndexesPerTable

public int maxIndexesPerTable

supportsForeignKeys

public boolean supportsForeignKeys

supportsDeferredConstraints

public boolean supportsDeferredConstraints

supportsRestrictDeleteAction

public boolean supportsRestrictDeleteAction

supportsCascadeDeleteAction

public boolean supportsCascadeDeleteAction

supportsNullDeleteAction

public boolean supportsNullDeleteAction

supportsDefaultDeleteAction

public boolean supportsDefaultDeleteAction

supportsAlterTableWithAddColumn

public boolean supportsAlterTableWithAddColumn

supportsAlterTableWithDropColumn

public boolean supportsAlterTableWithDropColumn

reservedWords

public String reservedWords

systemSchemas

public String systemSchemas

systemTables

public String systemTables

schemaCase

public String schemaCase

validationSQL

public String validationSQL

initializationSQL

public String initializationSQL

joinSyntax

public int joinSyntax

outerJoinClause

public String outerJoinClause

innerJoinClause

public String innerJoinClause

crossJoinClause

public String crossJoinClause

requiresConditionForCrossJoin

public boolean requiresConditionForCrossJoin

forUpdateClause

public String forUpdateClause

tableForUpdateClause

public String tableForUpdateClause

toLowerCaseFunction

public String toLowerCaseFunction

toUpperCaseFunction

public String toUpperCaseFunction

stringLengthFunction

public String stringLengthFunction

substringFunctionName

public String substringFunctionName

distinctCountColumnSeparator

public String distinctCountColumnSeparator

supportsSelectForUpdate

public boolean supportsSelectForUpdate

supportsLockingWithDistinctClause

public boolean supportsLockingWithDistinctClause

supportsLockingWithMultipleTables

public boolean supportsLockingWithMultipleTables

supportsLockingWithOrderClause

public boolean supportsLockingWithOrderClause

supportsLockingWithOuterJoin

public boolean supportsLockingWithOuterJoin

supportsLockingWithInnerJoin

public boolean supportsLockingWithInnerJoin

supportsLockingWithSelectRange

public boolean supportsLockingWithSelectRange

supportsQueryTimeout

public boolean supportsQueryTimeout

simulateLocking

public boolean simulateLocking

supportsSubselect

public boolean supportsSubselect

supportsHaving

public boolean supportsHaving

supportsSelectStartIndex

public boolean supportsSelectStartIndex

supportsSelectEndIndex

public boolean supportsSelectEndIndex

rangePosition

public int rangePosition

requiresAliasForSubselect

public boolean requiresAliasForSubselect

batchLimit

public int batchLimit

batchParameterLimit

public int batchParameterLimit

supportsUpdateCountsForBatch

public boolean supportsUpdateCountsForBatch

supportsTotalCountsForBatch

public boolean supportsTotalCountsForBatch

supportsMultipleNontransactionalResultSets

public boolean supportsMultipleNontransactionalResultSets

storageLimitationsFatal

public boolean storageLimitationsFatal

storeLargeNumbersAsStrings

public boolean storeLargeNumbersAsStrings

storeCharsAsNumbers

public boolean storeCharsAsNumbers

useGetBytesForBlobs

public boolean useGetBytesForBlobs

useSetBytesForBlobs

public boolean useSetBytesForBlobs

useGetObjectForBlobs

public boolean useGetObjectForBlobs

useGetStringForClobs

public boolean useGetStringForClobs

useSetStringForClobs

public boolean useSetStringForClobs

datePrecision

public int datePrecision

maxCharacterFieldLength

public int maxCharacterFieldLength

arrayTypeName

public String arrayTypeName

bigintTypeName

public String bigintTypeName

binaryTypeName

public String binaryTypeName

bitTypeName

public String bitTypeName

blobTypeName

public String blobTypeName

booleanTypeName

public String booleanTypeName

charTypeName

public String charTypeName

clobTypeName

public String clobTypeName

dateTypeName

public String dateTypeName

decimalTypeName

public String decimalTypeName

distinctTypeName

public String distinctTypeName

doubleTypeName

public String doubleTypeName

floatTypeName

public String floatTypeName

integerTypeName

public String integerTypeName

javaObjectTypeName

public String javaObjectTypeName

longVarbinaryTypeName

public String longVarbinaryTypeName

longVarcharTypeName

public String longVarcharTypeName

nullTypeName

public String nullTypeName

numericTypeName

public String numericTypeName

otherTypeName

public String otherTypeName

realTypeName

public String realTypeName

refTypeName

public String refTypeName

smallintTypeName

public String smallintTypeName

structTypeName

public String structTypeName

timeTypeName

public String timeTypeName

timestampTypeName

public String timestampTypeName

tinyintTypeName

public String tinyintTypeName

varbinaryTypeName

public String varbinaryTypeName

varcharTypeName

public String varcharTypeName

useSchemaName

public boolean useSchemaName

defaultSchemaName

public String defaultSchemaName

tableTypes

public String tableTypes

supportsSchemaForGetTables

public boolean supportsSchemaForGetTables

supportsSchemaForGetColumns

public boolean supportsSchemaForGetColumns

supportsNullTableForGetColumns

public boolean supportsNullTableForGetColumns

supportsNullTableForGetPrimaryKeys

public boolean supportsNullTableForGetPrimaryKeys

supportsNullTableForGetIndexInfo

public boolean supportsNullTableForGetIndexInfo

supportsNullTableForGetImportedKeys

public boolean supportsNullTableForGetImportedKeys

useGetBestRowIdentifierForPrimaryKeys

public boolean useGetBestRowIdentifierForPrimaryKeys

requiresAutoCommitForMetadata

public boolean requiresAutoCommitForMetadata

autoIncrementClause

public String autoIncrementClause

autoIncrementTypeName

public String autoIncrementTypeName

supportsAutoIncrement

public boolean supportsAutoIncrement

lastGeneratedKeyQuery

public String lastGeneratedKeyQuery

conf

protected JDBCConfiguration conf

log

protected Log log

connected

protected boolean connected

reservedWordSet

protected final Set reservedWordSet

systemSchemaSet

protected final Set systemSchemaSet

systemTableSet

protected final Set systemTableSet

fixedSizeTypeNameSet

protected final Set fixedSizeTypeNameSet
Constructor Detail

DBDictionary

public DBDictionary()
Method Detail

connectedConfiguration

public void connectedConfiguration(Connection conn)
                            throws SQLException
This method is called when the dictionary first sees any connection. It is used to initialize dictionary metadata if needed. If you override this method, be sure to call super.connectedConfiguration.

getArray

public Array getArray(ResultSet rs,
                      int column)
               throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getAsciiStream

public InputStream getAsciiStream(ResultSet rs,
                                  int column)
                           throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getBigDecimal

public BigDecimal getBigDecimal(ResultSet rs,
                                int column)
                         throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getNumber

public Number getNumber(ResultSet rs,
                        int column)
                 throws SQLException
Returns the specified column value as an unknown numeric type; we try from the most generic to the least generic.

getBigInteger

public BigInteger getBigInteger(ResultSet rs,
                                int column)
                         throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getBinaryStream

public InputStream getBinaryStream(ResultSet rs,
                                   int column)
                            throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getBlob

public Blob getBlob(ResultSet rs,
                    int column)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getBlobObject

public Object getBlobObject(ResultSet rs,
                            int column)
                     throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getBoolean

public boolean getBoolean(ResultSet rs,
                          int column)
                   throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getByte

public byte getByte(ResultSet rs,
                    int column)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getBytes

public byte[] getBytes(ResultSet rs,
                       int column)
                throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getChar

public char getChar(ResultSet rs,
                    int column)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getCharacterStream

public Reader getCharacterStream(ResultSet rs,
                                 int column)
                          throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getClob

public Clob getClob(ResultSet rs,
                    int column)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getClobString

public String getClobString(ResultSet rs,
                            int column)
                     throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getDate

public Date getDate(ResultSet rs,
                    int column)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type. Converts the date from a Timestamp by default.

getDate

public Date getDate(ResultSet rs,
                    int column,
                    Calendar cal)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getDouble

public double getDouble(ResultSet rs,
                        int column)
                 throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getFloat

public float getFloat(ResultSet rs,
                      int column)
               throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getInt

public int getInt(ResultSet rs,
                  int column)
           throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getLocale

public Locale getLocale(ResultSet rs,
                        int column)
                 throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getLong

public long getLong(ResultSet rs,
                    int column)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getObject

public Object getObject(ResultSet rs,
                        int column,
                        Map map)
                 throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getRef

public Ref getRef(ResultSet rs,
                  int column,
                  Map map)
           throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getShort

public short getShort(ResultSet rs,
                      int column)
               throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getString

public String getString(ResultSet rs,
                        int column)
                 throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getTime

public Time getTime(ResultSet rs,
                    int column,
                    Calendar cal)
             throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

getTimestamp

public Timestamp getTimestamp(ResultSet rs,
                              int column,
                              Calendar cal)
                       throws SQLException
Convert the specified column of the SQL ResultSet to the proper java type.

setArray

public void setArray(PreparedStatement stmnt,
                     int idx,
                     Array val)
              throws SQLException
Deprecated.  


setArray

public void setArray(PreparedStatement stmnt,
                     int idx,
                     Array val,
                     Column col)
              throws SQLException
Set the given value as a parameter to the statement.

setAsciiStream

public void setAsciiStream(PreparedStatement stmnt,
                           int idx,
                           InputStream val,
                           int length)
                    throws SQLException
Deprecated.  


setAsciiStream

public void setAsciiStream(PreparedStatement stmnt,
                           int idx,
                           InputStream val,
                           int length,
                           Column col)
                    throws SQLException
Set the given value as a parameter to the statement.

setBigDecimal

public void setBigDecimal(PreparedStatement stmnt,
                          int idx,
                          BigDecimal val)
                   throws SQLException
Deprecated.  


setBigDecimal

public void setBigDecimal(PreparedStatement stmnt,
                          int idx,
                          BigDecimal val,
                          Column col)
                   throws SQLException
Set the given value as a parameter to the statement.

setBigInteger

public void setBigInteger(PreparedStatement stmnt,
                          int idx,
                          BigInteger val)
                   throws SQLException
Deprecated.  


setBigInteger

public void setBigInteger(PreparedStatement stmnt,
                          int idx,
                          BigInteger val,
                          Column col)
                   throws SQLException
Set the given value as a parameter to the statement.

setBinaryStream

public void setBinaryStream(PreparedStatement stmnt,
                            int idx,
                            InputStream val,
                            int length)
                     throws SQLException
Deprecated.  


setBinaryStream

public void setBinaryStream(PreparedStatement stmnt,
                            int idx,
                            InputStream val,
                            int length,
                            Column col)
                     throws SQLException
Set the given value as a parameter to the statement.

setBlob

public void setBlob(PreparedStatement stmnt,
                    int idx,
                    Blob val)
             throws SQLException
Deprecated.  


setBlob

public void setBlob(PreparedStatement stmnt,
                    int idx,
                    Blob val,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setBlobObject

public void setBlobObject(PreparedStatement stmnt,
                          int idx,
                          Object val)
                   throws SQLException
Deprecated.  


setBlobObject

public void setBlobObject(PreparedStatement stmnt,
                          int idx,
                          Object val,
                          Column col)
                   throws SQLException
Set the given value as a parameter to the statement. Uses the serialize(java.lang.Object) method to serialize the value.

serialize

public byte[] serialize(Object val)
                 throws SQLException
Return the serialized bytes for the given object.

setBoolean

public void setBoolean(PreparedStatement stmnt,
                       int idx,
                       boolean val)
                throws SQLException
Deprecated.  


setBoolean

public void setBoolean(PreparedStatement stmnt,
                       int idx,
                       boolean val,
                       Column col)
                throws SQLException
Set the given value as a parameter to the statement.

setByte

public void setByte(PreparedStatement stmnt,
                    int idx,
                    byte val)
             throws SQLException
Deprecated.  


setByte

public void setByte(PreparedStatement stmnt,
                    int idx,
                    byte val,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setBytes

public void setBytes(PreparedStatement stmnt,
                     int idx,
                     byte[] val)
              throws SQLException
Deprecated.  


setBytes

public void setBytes(PreparedStatement stmnt,
                     int idx,
                     byte[] val,
                     Column col)
              throws SQLException
Set the given value as a parameter to the statement.

setChar

public void setChar(PreparedStatement stmnt,
                    int idx,
                    char val)
             throws SQLException
Deprecated.  


setChar

public void setChar(PreparedStatement stmnt,
                    int idx,
                    char val,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setCharacterStream

public void setCharacterStream(PreparedStatement stmnt,
                               int idx,
                               Reader val,
                               int length)
                        throws SQLException
Deprecated.  


setCharacterStream

public void setCharacterStream(PreparedStatement stmnt,
                               int idx,
                               Reader val,
                               int length,
                               Column col)
                        throws SQLException
Set the given value as a parameter to the statement.

setClob

public void setClob(PreparedStatement stmnt,
                    int idx,
                    Clob val)
             throws SQLException
Deprecated.  


setClob

public void setClob(PreparedStatement stmnt,
                    int idx,
                    Clob val,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setClobString

public void setClobString(PreparedStatement stmnt,
                          int idx,
                          String val)
                   throws SQLException
Deprecated.  


setClobString

public void setClobString(PreparedStatement stmnt,
                          int idx,
                          String val,
                          Column col)
                   throws SQLException
Set the given value as a parameter to the statement.

setDate

public void setDate(PreparedStatement stmnt,
                    int idx,
                    Date val)
             throws SQLException
Deprecated.  


setDate

public void setDate(PreparedStatement stmnt,
                    int idx,
                    Date val,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement. Translates the date to a Timestamp by default.

setDate

public void setDate(PreparedStatement stmnt,
                    int idx,
                    Date val,
                    Calendar cal)
             throws SQLException
Deprecated.  


setDate

public void setDate(PreparedStatement stmnt,
                    int idx,
                    Date val,
                    Calendar cal,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setDouble

public void setDouble(PreparedStatement stmnt,
                      int idx,
                      double val)
               throws SQLException
Deprecated.  


setDouble

public void setDouble(PreparedStatement stmnt,
                      int idx,
                      double val,
                      Column col)
               throws SQLException
Set the given value as a parameter to the statement.

setFloat

public void setFloat(PreparedStatement stmnt,
                     int idx,
                     float val)
              throws SQLException
Deprecated.  


setFloat

public void setFloat(PreparedStatement stmnt,
                     int idx,
                     float val,
                     Column col)
              throws SQLException
Set the given value as a parameter to the statement.

setInt

public void setInt(PreparedStatement stmnt,
                   int idx,
                   int val)
            throws SQLException
Deprecated.  


setInt

public void setInt(PreparedStatement stmnt,
                   int idx,
                   int val,
                   Column col)
            throws SQLException
Set the given value as a parameter to the statement.

setLong

public void setLong(PreparedStatement stmnt,
                    int idx,
                    long val)
             throws SQLException
Deprecated.  


setLong

public void setLong(PreparedStatement stmnt,
                    int idx,
                    long val,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setLocale

public void setLocale(PreparedStatement stmnt,
                      int idx,
                      Locale val)
               throws SQLException
Deprecated.  


setLocale

public void setLocale(PreparedStatement stmnt,
                      int idx,
                      Locale val,
                      Column col)
               throws SQLException
Set the given value as a parameter to the statement.

setNull

public void setNull(PreparedStatement stmnt,
                    int idx,
                    int colType)
             throws SQLException
Deprecated.  


setNull

public void setNull(PreparedStatement stmnt,
                    int idx,
                    int colType,
                    Column col)
             throws SQLException
Set the given value as a parameters to the statement. The column type will come from Types.

setObject

public void setObject(PreparedStatement stmnt,
                      int idx,
                      Object val,
                      int colType)
               throws SQLException
Deprecated.  


setObject

public void setObject(PreparedStatement stmnt,
                      int idx,
                      Object val,
                      int colType,
                      Column col)
               throws SQLException
Set the given value as a parameters to the statement. The column type will come from Types.

setRef

public void setRef(PreparedStatement stmnt,
                   int idx,
                   Ref val)
            throws SQLException
Deprecated.  


setRef

public void setRef(PreparedStatement stmnt,
                   int idx,
                   Ref val,
                   Column col)
            throws SQLException
Set the given value as a parameter to the statement.

setShort

public void setShort(PreparedStatement stmnt,
                     int idx,
                     short val)
              throws SQLException
Deprecated.  


setShort

public void setShort(PreparedStatement stmnt,
                     int idx,
                     short val,
                     Column col)
              throws SQLException
Set the given value as a parameter to the statement.

setString

public void setString(PreparedStatement stmnt,
                      int idx,
                      String val)
               throws SQLException
Deprecated.  


setString

public void setString(PreparedStatement stmnt,
                      int idx,
                      String val,
                      Column col)
               throws SQLException
Set the given value as a parameter to the statement.

setTime

public void setTime(PreparedStatement stmnt,
                    int idx,
                    Time val,
                    Calendar cal)
             throws SQLException
Deprecated.  


setTime

public void setTime(PreparedStatement stmnt,
                    int idx,
                    Time val,
                    Calendar cal,
                    Column col)
             throws SQLException
Set the given value as a parameter to the statement.

setTimestamp

public void setTimestamp(PreparedStatement stmnt,
                         int idx,
                         Timestamp val,
                         Calendar cal)
                  throws SQLException
Deprecated.  


setTimestamp

public void setTimestamp(PreparedStatement stmnt,
                         int idx,
                         Timestamp val,
                         Calendar cal,
                         Column col)
                  throws SQLException
Set the given value as a parameter to the statement.

setUnknown

public void setUnknown(PreparedStatement stmnt,
                       int idx,
                       Object val)
                throws SQLException
Deprecated.  


setUnknown

public void setUnknown(PreparedStatement stmnt,
                       int idx,
                       Object val,
                       Column col)
                throws SQLException
Set a completely unknown parameter into a prepared statement. The given column may be null.

storageWarning

protected void storageWarning(Object orig,
                              Object converted)
Warn that a particular value could not be stored precisely. After the first warning for a particular type, messages will be turned into trace messages.

getJDBCType

public int getJDBCType(int metaTypeCode,
                       boolean lob)
Return the preferred Types constant for the given JDBCTypes constant.

getPreferredType

public int getPreferredType(int type)
Return the preferred Types type for the given one. Returns the given type by default.

getTypeName

protected String getTypeName(Column col)
Return the preferred database type name for the given column's type from Types.

appendSize

protected String appendSize(Column col,
                            String typeName)
Helper method to add size properties to the specified type. If present, the string "{0}" will be replaced with the size definition; otherwise the size definition will be appended to the type name. If your database has column types that don't allow size definitions, override this method to return the unaltered type name for columns of those types (or add the type names to the fixedSizeTypeNameSet).

canBatch

public boolean canBatch(Column col)
Returns type if the specified column can be included in batch statements.

setJoinSyntax

public void setJoinSyntax(String syntax)
Set the name of the join syntax to use: sql92, traditional, database

toSelectCount

public SQLBuffer toSelectCount(Select sel)
Create a SELECT COUNT statement in the proper join syntax for the given instance.

toSelect

public SQLBuffer toSelect(Select sel,
                          boolean forUpdate)
Create a SELECT statement in the proper join syntax for the given instance.

getFrom

protected SQLBuffer getFrom(Select sel,
                            boolean forUpdate)
Return the portion of the select statement between the FROM keyword and the WHERE keyword.

getFromSelect

protected SQLBuffer getFromSelect(Select sel,
                                  boolean forUpdate)
Return the FROM clause for a select that selects from a tmp table created by an inner select.

getWhere

protected SQLBuffer getWhere(Select sel,
                             boolean forUpdate)
Return the WHERE portion of the select statement, or null if no where conditions.

toTraditionalJoin

public SQLBuffer toTraditionalJoin(Join join)
Use the given join instance to create SQL joining its tables in the traditional style.

toSQL92Join

public SQLBuffer toSQL92Join(Join join,
                             boolean forUpdate,
                             boolean first)
Use the given join instance to create SQL joining its tables in the SQL92 style.

toNativeJoin

public SQLBuffer toNativeJoin(Join join)
Use the given join instance to create SQL joining its tables in the database's native syntax. Throws an exception by default.

canOuterJoin

public boolean canOuterJoin(int syntax,
                            ForeignKey fk)
Returns if the given foreign key can be eagerly loaded using other joins.

toSelect

public SQLBuffer toSelect(SQLBuffer selects,
                          SQLBuffer from,
                          SQLBuffer where,
                          SQLBuffer group,
                          SQLBuffer having,
                          SQLBuffer order,
                          boolean distinct,
                          boolean forUpdate,
                          long start,
                          long end)
Combine the given components into a SELECT statement.

appendSelectRange

protected void appendSelectRange(SQLBuffer buf,
                                 long start,
                                 long end)
If this dictionary can select ranges, use this method to append the range SQL.

getSelects

protected SQLBuffer getSelects(Select sel,
                               boolean distinctIdentifiers,
                               boolean forUpdate)
Return the portion of the select statement between the SELECT keyword and the FROM keyword.

supportsLocking

public boolean supportsLocking(Select sel)
Returns true if a "FOR UPDATE" clause can be used for the specified Select object.

supportsRandomAccessResultSet

public boolean supportsRandomAccessResultSet(Select sel,
                                             boolean forUpdate)
Return false if the given select requires a forward-only result set.

assertSupport

public void assertSupport(boolean feature,
                          String property)
Assert that the given dictionary flag is true. If it is not true, throw an error saying that the given setting needs to return true for the current operation to work.

substring

public void substring(SQLBuffer buf,
                      FilterValue str,
                      FilterValue start,
                      FilterValue end)
Invoke this database's substring function.
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
end - a query value representing the end index, or null for none

indexOf

public void indexOf(SQLBuffer buf,
                    FilterValue str,
                    FilterValue find,
                    FilterValue start)
Invoke this database's indexOf function.
Parameters:
buf - the SQL buffer to write the indexOf invocation to
str - a query value representing the target string
search - a query value representing the search string
start - a query value representing the start index, or null to start at the beginning

refSchemaComponents

public void refSchemaComponents(Table table)
Increment the reference count of any table components that this dictionary adds that are not used by mappings. Does nothing by default.

getFullName

public String getFullName(Table table,
                          boolean logical)
Returns the full name of the table, including the schema (delimited by '.' if logical, else catalogSeparator).

getFullName

public String getFullName(Index index)
Returns the full name of the index, including the schema (delimited by the result of catalogSeparator).

getValidTableName

public String getValidTableName(String name,
                                Schema schema)
Make any necessary changes to the given table name to make it valid for the current DB.

getValidColumnName

public String getValidColumnName(String name,
                                 Table table)
Make any necessary changes to the given column name to make it valid for the current DB.

getValidPrimaryKeyName

public String getValidPrimaryKeyName(String name,
                                     Table table)
Make any necessary changes to the given primary key name to make it valid for the current DB.

getValidForeignKeyName

public String getValidForeignKeyName(String name,
                                     Table table,
                                     Table toTable)
Make any necessary changes to the given foreign key name to make it valid for the current DB.

getValidIndexName

public String getValidIndexName(String name,
                                Table table)
Make any necessary changes to the given index name to make it valid for the current DB.

makeNameValid

protected String makeNameValid(String name,
                               NameSet set,
                               int maxLen)
Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete.

getCreateTableSQL

public String[] getCreateTableSQL(Table table)
Return a series of SQL statements to create the given table, complete with columns. Indexes and constraints will be created separately.

getDropTableSQL

public String[] getDropTableSQL(Table table)
Return a series of SQL statements to drop the given table. Indexes will be dropped separately. Returns DROP TABLE <table name> by default.

getCreateIndexSQL

public String[] getCreateIndexSQL(Index index)
Return a series of SQL statements to create the given index. Returns CREATE [UNIQUE] INDEX <index name> ON <table name> (<col list>) by default.

getDropIndexSQL

public String[] getDropIndexSQL(Index index)
Return a series of SQL statements to drop the given index. Returns DROP INDEX <index name> by default.

getAddColumnSQL

public String[] getAddColumnSQL(Column column)
Return a series of SQL statements to add the given column to its table. Return an empty array if operation not supported. The DBMetaData is checked for support automatically. Returns ALTER TABLE <table name> ADD (<col dec>) by default.

getDropColumnSQL

public String[] getDropColumnSQL(Column column)
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.

getAddPrimaryKeySQL

public String[] getAddPrimaryKeySQL(PrimaryKey pk)
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.

getDropPrimaryKeySQL

public String[] getDropPrimaryKeySQL(PrimaryKey pk)
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.

getAddForeignKeySQL

public String[] getAddForeignKeySQL(ForeignKey fk)
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.

getDropForeignKeySQL

public String[] getDropForeignKeySQL(ForeignKey fk)
Return a series of SQL statements to drop the given foreign key from its table. Return an empty array if operation not supported. Returns ALTER TABLE <table name> DROP CONSTRAINT <fk name> by default.

getDeclareColumnSQL

protected String getDeclareColumnSQL(Column col,
                                     boolean alter)
Return the declaration SQL for the given column. This method is used for each column from within getCreateTableSQL(kodo.jdbc.schema.Table) and getAddColumnSQL(kodo.jdbc.schema.Column).

getPrimaryKeyConstraintSQL

protected String getPrimaryKeyConstraintSQL(PrimaryKey pk)
Return the declaration SQL for the given primary key. This method is used from within getCreateTableSQL(kodo.jdbc.schema.Table) and getAddPrimaryKeySQL(kodo.jdbc.schema.PrimaryKey). Returns CONSTRAINT <pk name> PRIMARY KEY (<col list>) by default.

getForeignKeyConstraintSQL

protected String getForeignKeyConstraintSQL(ForeignKey fk)
Return the declaration SQL for the given foreign key, or null if it is not supported. This method is used from within getAddForeignKeySQL(kodo.jdbc.schema.ForeignKey). Returns CONSTRAINT <cons name> FOREIGN KEY (<col list>) REFERENCES <foreign table> (<col list>) [ON DELETE <action>] by default.

isSystemTable

public boolean isSystemTable(String name,
                             String schema,
                             boolean targetSchema)
This method is used to filter system tables from database metadata. Return true if the given table name represents a system table that should not appear in the schema definition. By default, returns true only if the given table is in the internal list of system tables, or if the given schema is in the list of system schemas and is not the target schema.
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 JDO schemas

isSystemIndex

public boolean isSystemIndex(String name,
                             Table table)
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.
Parameters:
name - the index name
table - the index table

getTables

public Table[] getTables(DatabaseMetaData meta,
                         String catalog,
                         String schemaName,
                         String tableName,
                         Connection conn)
                  throws SQLException
Reflect on the schema to find tables matching the given name pattern.

newTable

protected Table newTable(ResultSet tableMeta)
                  throws SQLException
Create a new table from the information in the schema metadata.

getColumns

public Column[] getColumns(DatabaseMetaData meta,
                           String catalog,
                           String schemaName,
                           String tableName,
                           String columnName,
                           Connection conn)
                    throws SQLException
Reflect on the schema to find columns matching the given table and column patterns.

newColumn

protected Column newColumn(ResultSet colMeta)
                    throws SQLException
Create a new column from the information in the schema metadata.

getPrimaryKeys

public PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta,
                                   String catalog,
                                   String schemaName,
                                   String tableName,
                                   Connection conn)
                            throws SQLException
Reflect on the schema to find primary keys for the given table pattern.

getPrimaryKeysFromGetPrimaryKeys

protected PrimaryKey[] getPrimaryKeysFromGetPrimaryKeys(DatabaseMetaData meta,
                                                        String catalog,
                                                        String schemaName,
                                                        String tableName,
                                                        Connection conn)
                                                 throws SQLException
Reflect on the schema to find primary keys for the given table pattern.

newPrimaryKey

protected PrimaryKey newPrimaryKey(ResultSet pkMeta)
                            throws SQLException
Create a new primary key from the information in the schema metadata.

getPrimaryKeysFromBestRowIdentifier

protected PrimaryKey[] getPrimaryKeysFromBestRowIdentifier(DatabaseMetaData meta,
                                                           String catalog,
                                                           String schemaName,
                                                           String tableName,
                                                           Connection conn)
                                                    throws SQLException
Reflect on the schema to find primary keys for the given table pattern.

getIndexInfo

public Index[] getIndexInfo(DatabaseMetaData meta,
                            String catalog,
                            String schemaName,
                            String tableName,
                            boolean unique,
                            boolean approx,
                            Connection conn)
                     throws SQLException
Reflect on the schema to find indexes matching the given table pattern.

newIndex

protected Index newIndex(ResultSet idxMeta)
                  throws SQLException
Create a new index from the information in the schema metadata.

getImportedKeys

public ForeignKey[] getImportedKeys(DatabaseMetaData meta,
                                    String catalog,
                                    String schemaName,
                                    String tableName,
                                    Connection conn)
                             throws SQLException
Reflect on the schema to return foreign keys imported by the given table pattern.

newForeignKey

protected ForeignKey newForeignKey(ResultSet fkMeta)
                            throws SQLException
Create a new foreign key from the information in the schema metadata.

getTableNameForMetadata

protected String getTableNameForMetadata(String tableName)
Returns the table name that will be used for obtaining information from DatabaseMetaData.

getSchemaNameForMetadata

protected String getSchemaNameForMetadata(String schemaName)
Returns the schema name that will be used for obtaining information from DatabaseMetaData.

getCatalogNameForMetadata

protected String getCatalogNameForMetadata(String catalogName)
Returns the catalog name that will be used for obtaining information from DatabaseMetaData.

getColumnNameForMetadata

protected String getColumnNameForMetadata(String columnName)
Returns the column name that will be used for obtaining information from DatabaseMetaData.

convertSchemaCase

protected String convertSchemaCase(String objectName)
Convert the specified schema name to a name that the database will be able to understand.

getGeneratedKey

public long getGeneratedKey(Column col,
                            Connection conn)
                     throws SQLException
Return the last inserted auto increment value for the given column. Throws an exception by default if lastGeneratedKeyQuery is null.

getGeneratedKeySequenceName

protected String getGeneratedKeySequenceName(Column col)
Return the sequence name used by databases for the given autoincrement column. This is only used by databases that require an explicit name to be used for auto-increment support.

replaceMapping

public ClassMapping replaceMapping(ClassMapping mapping)
Replace the given mapping with one suited to this database, or return the original if no replacement is needed. Returns the original by default.

replaceMapping

public FieldMapping replaceMapping(FieldMapping mapping)
Replace the given mapping with one suited to this database, or return the original if no replacement is needed. Returns the original by default.

replaceMappingFactory

public MappingFactory replaceMappingFactory(MappingFactory factory)
Replace the given factory with one suited to this database, or return the original if no replacement is needed. Returns the original by default.

replaceSchemaFactory

public SchemaFactory replaceSchemaFactory(SchemaFactory factory)
Replace the given factory with one suited to this database, or return the original if no replacement is needed. Returns the original by default.

setConfiguration

public void setConfiguration(Configuration conf)
Description copied from interface: Configurable
Invoked prior to setting bean properties.
Specified by:
setConfiguration in interface Configurable

startConfiguration

public void startConfiguration()
Description copied from interface: Configurable
Invoked before bean property configuration is begun on this object.
Specified by:
startConfiguration in interface Configurable

endConfiguration

public void endConfiguration()
Description copied from interface: Configurable
Invoked upon completion of bean property configuration for this object.
Specified by:
endConfiguration in interface Configurable

decorate

public Connection decorate(Connection conn)
                    throws SQLException
Decorate the given connection if needed. Some databases require special handling for JDBC bugs. This implementation issues any initializationSQL that has been set for the dictionary but does not decoreate the connection.
Specified by:
decorate in interface ConnectionDecorator

newDataStoreException

public JDOException newDataStoreException(String msg,
                                          SQLException[] causes,
                                          Object failed)
Return a new JDO 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.

SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

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