com.triactive.jdo.store
Class SAPDBAdapter

java.lang.Object
  extended bycom.triactive.jdo.store.DatabaseAdapter
      extended bycom.triactive.jdo.store.SAPDBAdapter

class SAPDBAdapter
extends DatabaseAdapter

Provides methods for adapting SQL language elements to the SAP DB database.

Author:
Mike Martin
See Also:
DatabaseAdapter

Field Summary
 
Fields inherited from class com.triactive.jdo.store.DatabaseAdapter
databaseMajorVersion, databaseMinorVersion, databaseProductName, databaseProductVersion, identifierQuoteString, keywords, maxColumnNameLength, maxConstraintNameLength, maxIndexNameLength, maxTableNameLength, storesLowerCaseIdentifiers, storesUpperCaseIdentifiers, typeMappings, typesByTypeNumber
 
Constructor Summary
protected SAPDBAdapter(java.sql.DatabaseMetaData metadata)
          Constructs an SAP DB adapter based on the given JDBC metadata.
 
Method Summary
 java.lang.String getAddCandidateKeyStatement(SQLIdentifier ckName, CandidateKey ck)
          Returns the appropriate SQL to add a candidate key to its table.
 java.lang.String getAddForeignKeyStatement(SQLIdentifier fkName, ForeignKey fk)
          Returns the appropriate SQL to add a foreign key to its table.
 java.lang.String getAddPrimaryKeyStatement(SQLIdentifier pkName, PrimaryKey pk)
          Returns the appropriate SQL to add a primary key to its table.
 java.lang.String getVendorID()
           
 NumericExpression lengthMethod(CharacterExpression str)
          Returns the appropriate SQL expression for the JDOQL String.length() method.
 TableExpression newTableExpression(QueryStatement qs, Table table, SQLIdentifier rangeVar)
          Returns a new TableExpression object appropriate for this DBMS.
 CharacterExpression substringMethod(CharacterExpression str, NumericExpression begin)
          Returns the appropriate SQL expression for the JDOQL String.substring(str,begin) method.
 CharacterExpression substringMethod(CharacterExpression str, NumericExpression begin, NumericExpression end)
          Returns the appropriate SQL expression for the JDOQL String.substring(str,begin,end) method.
 boolean supportsAlterTableDropConstraint()
           
 boolean supportsBooleanComparison()
           
 boolean supportsDeferredConstraints()
           
 
Methods inherited from class com.triactive.jdo.store.DatabaseAdapter
closeConnection, createIndexesBeforeForeignKeys, createTypeInfo, getConnection, getCreateIndexStatement, getCreateTableStatement, getDropTableStatement, getDropViewStatement, getIdentifierQuoteString, getInstance, getMapping, getMapping, getMapping, getMappingClass, getMaxColumnNameLength, getMaxConstraintNameLength, getMaxIndexNameLength, getMaxTableNameLength, getSchemaName, getSQLState, getTypeInfo, getTypeInfo, getUnlimitedLengthPrecisionValue, includeOrderByColumnsInSelect, isEmbeddedType, isSQLKeyword, newColumnInfo, newDataStoreException, newForeignKeyInfo, newQueryStatement, newQueryStatement, newTypeInfo, parseKeywordList, storesLowerCaseIdentifiers, storesUpperCaseIdentifiers, supportsNullsInCandidateKeys, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SAPDBAdapter

protected SAPDBAdapter(java.sql.DatabaseMetaData metadata)
Constructs an SAP DB adapter based on the given JDBC metadata.

Parameters:
metadata - the database metadata.
Method Detail

getVendorID

public java.lang.String getVendorID()
Overrides:
getVendorID in class DatabaseAdapter

supportsAlterTableDropConstraint

public boolean supportsAlterTableDropConstraint()
Overrides:
supportsAlterTableDropConstraint in class DatabaseAdapter

supportsBooleanComparison

public boolean supportsBooleanComparison()
Overrides:
supportsBooleanComparison in class DatabaseAdapter

supportsDeferredConstraints

public boolean supportsDeferredConstraints()
Overrides:
supportsDeferredConstraints in class DatabaseAdapter

newTableExpression

public TableExpression newTableExpression(QueryStatement qs,
                                          Table table,
                                          SQLIdentifier rangeVar)
Description copied from class: DatabaseAdapter
Returns a new TableExpression object appropriate for this DBMS. This should be an instance of one of the three built-in styles of table expression: TableExprAsSubjoins is the default, which arguably produces the most readable SQL but doesn't work on all DBMS's. TableExprAsSubjoins should work anywhere, but may be less efficient.

Overrides:
newTableExpression in class DatabaseAdapter
Parameters:
qs - The query statement in which the table expression will be included.
table - The main table in the expression.
rangeVar - The SQL alias, or "range variable", to assign to the expression or to the main table.

getAddPrimaryKeyStatement

public java.lang.String getAddPrimaryKeyStatement(SQLIdentifier pkName,
                                                  PrimaryKey pk)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL to add a primary key to its table. It should return something like:

 ALTER TABLE FOO ADD CONSTRAINT FOO_PK PRIMARY KEY (BAR)
 

Overrides:
getAddPrimaryKeyStatement in class DatabaseAdapter
Parameters:
pkName - The name of the primary key to add.
pk - An object describing the primary key.
Returns:
The text of the SQL statement.

getAddCandidateKeyStatement

public java.lang.String getAddCandidateKeyStatement(SQLIdentifier ckName,
                                                    CandidateKey ck)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL to add a candidate key to its table. It should return something like:

 ALTER TABLE FOO ADD CONSTRAINT FOO_CK UNIQUE (BAZ)
 

Overrides:
getAddCandidateKeyStatement in class DatabaseAdapter
Parameters:
ckName - The name of the candidate key to add.
ck - An object describing the candidate key.
Returns:
The text of the SQL statement.

getAddForeignKeyStatement

public java.lang.String getAddForeignKeyStatement(SQLIdentifier fkName,
                                                  ForeignKey fk)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL to add a foreign key to its table. It should return something like:

 ALTER TABLE FOO ADD CONSTRAINT FOO_FK1 FOREIGN KEY (BAR, BAZ) REFERENCES ABC (COL1, COL2)
 

Overrides:
getAddForeignKeyStatement in class DatabaseAdapter
Parameters:
fkName - The name of the foreign key to add.
fk - An object describing the foreign key.
Returns:
The text of the SQL statement.

lengthMethod

public NumericExpression lengthMethod(CharacterExpression str)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL expression for the JDOQL String.length() method. It should return something like:

 CHAR_LENGTH(str)
 

Overrides:
lengthMethod in class DatabaseAdapter
Parameters:
str - The argument to the length() method.
Returns:
The text of the SQL expression.

substringMethod

public CharacterExpression substringMethod(CharacterExpression str,
                                           NumericExpression begin)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL expression for the JDOQL String.substring(str,begin) method. It should return something like:

 SUBSTRING(str FROM begin)
 
Note that the value of begin is base 0 (Java-style), while most SQL string functions use base 1.

Overrides:
substringMethod in class DatabaseAdapter
Parameters:
str - The first argument to the substring() method.
begin - The second argument to the substring() method.
Returns:
The text of the SQL expression.

substringMethod

public CharacterExpression substringMethod(CharacterExpression str,
                                           NumericExpression begin,
                                           NumericExpression end)
Description copied from class: DatabaseAdapter
Returns the appropriate SQL expression for the JDOQL String.substring(str,begin,end) method. It should return something like:

 SUBSTRING(str FROM begin FOR len)
 
Note that the value of begin is base 0 (Java-style), while most SQL string functions use base 1. Note also that an end position is given, while most SQL substring functions take a length.

Overrides:
substringMethod in class DatabaseAdapter
Parameters:
str - The first argument to the substring() method.
begin - The second argument to the substring() method.
end - The third argument to the substring() method.
Returns:
The text of the SQL expression.


Copyright ? 2001 TriActive, Inc. All Rights Reserved.