|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.datanucleus.store.rdbms.adapter.DatabaseAdapter
org.datanucleus.store.rdbms.adapter.DB2Adapter
public class DB2Adapter
Provides methods for adapting SQL language elements to the DB2 database.
DatabaseAdapter| Field Summary | |
|---|---|
static java.lang.String |
DB2_RESERVED_WORDS
A string containing the list of DB2 keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database DB2 version 7 |
| Fields inherited from class org.datanucleus.store.rdbms.adapter.DatabaseAdapter |
|---|
catalogSeparator, datastoreMajorVersion, datastoreMinorVersion, datastoreProductName, datastoreProductVersion, datastoreRevisionVersion, driverMajorVersion, driverMinorVersion, driverName, driverVersion, identifierQuoteString, LOCALISER, LOCALISER_BASE, maxColumnNameLength, maxConstraintNameLength, maxIndexNameLength, maxTableNameLength, properties, reservedKeywords, supportedOptions |
| Fields inherited from interface org.datanucleus.store.mapped.DatastoreAdapter |
|---|
ANALYSIS_METHODS, BIT_IS_REALLY_BOOLEAN, BOOLEAN_COMPARISON, CATALOGS_IN_TABLE_DEFINITIONS, ESCAPE_EXPRESSION_IN_LIKE_PREDICATE, IDENTIFIERS_LOWERCASE, IDENTIFIERS_LOWERCASE_QUOTED, IDENTIFIERS_MIXEDCASE, IDENTIFIERS_MIXEDCASE_QUOTED, IDENTIFIERS_MIXEDCASE_QUOTED_SENSITIVE, IDENTIFIERS_MIXEDCASE_SENSITIVE, IDENTIFIERS_UPPERCASE, IDENTIFIERS_UPPERCASE_QUOTED, IDENTITY_COLUMNS, PROJECTION_IN_TABLE_REFERENCE_JOINS, SCHEMAS_IN_TABLE_DEFINITIONS, SEQUENCES |
| Constructor Summary | |
|---|---|
DB2Adapter(java.sql.DatabaseMetaData metadata)
Constructs a DB2 adapter based on the given JDBC metadata. |
|
| Method Summary | |
|---|---|
org.datanucleus.store.mapped.expression.ScalarExpression |
concatOperator(org.datanucleus.store.mapped.expression.ScalarExpression operand1,
org.datanucleus.store.mapped.expression.ScalarExpression operand2)
If only one operand expression is of type String, then string conversion is performed on the other operand to produce a string at run time. |
org.datanucleus.store.mapped.expression.BooleanExpression |
endsWithMethod(org.datanucleus.store.mapped.expression.ScalarExpression leftOperand,
org.datanucleus.store.mapped.expression.ScalarExpression rightOperand)
Returns whether this string ends with the specified string. |
java.lang.String |
getAutoIncrementKeyword()
Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...). |
java.lang.String |
getAutoIncrementStmt(Table table,
java.lang.String columnName)
Accessor for the auto-increment sql statement for this datastore. |
java.lang.String |
getContinuationString()
Continuation string to use where the SQL statement goes over more than 1 line. |
int |
getDatastoreIdentifierMaxLength(org.datanucleus.store.mapped.IdentifierType identifierType)
Method to return the maximum length of a datastore identifier of the specified type. |
java.lang.String |
getDropTableStatement(org.datanucleus.store.mapped.DatastoreContainerObject table)
Returns the appropriate SQL to drop the given table. |
org.datanucleus.store.mapped.expression.NumericExpression |
getNumericExpressionForMethod(java.lang.String method,
org.datanucleus.store.mapped.expression.ScalarExpression expr)
Accessor for a numeric expression to represent the method call, with passed argument. |
java.lang.String |
getSchemaName(java.sql.Connection conn)
Accessor for the Schema Name for this datastore. |
java.lang.String |
getSequenceCreateStmt(java.lang.String sequence_name,
java.lang.String min,
java.lang.String max,
java.lang.String start,
java.lang.String increment,
java.lang.String cache_size)
Accessor for the sequence statement to create the sequence. |
java.lang.String |
getSequenceNextStmt(java.lang.String sequence_name)
Accessor for the statement for getting the next id from the sequence for this datastore. |
int |
getUnlimitedLengthPrecisionValue(SQLTypeInfo typeInfo)
Returns the precision value to be used when creating string columns of "unlimited" length. |
java.lang.String |
getVendorID()
|
org.datanucleus.store.mapped.expression.NumericExpression |
indexOfMethod(org.datanucleus.store.mapped.expression.ScalarExpression source,
org.datanucleus.store.mapped.expression.ScalarExpression str,
org.datanucleus.store.mapped.expression.NumericExpression from)
Returns the appropriate SQL expression for the JDOQL String.indexOf() method. |
void |
initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler,
org.datanucleus.ManagedConnection mconn)
Initialise the types for this datastore. |
org.datanucleus.store.mapped.expression.NumericExpression |
modOperator(org.datanucleus.store.mapped.expression.ScalarExpression operand1,
org.datanucleus.store.mapped.expression.ScalarExpression operand2)
Method to generate a modulus expression. |
RDBMSColumnInfo |
newRDBMSColumnInfo(java.sql.ResultSet rs)
Method to create a column info for the current row. |
SQLTypeInfo |
newSQLTypeInfo(java.sql.ResultSet rs)
Create a new SQL type info from the current row of the passed ResultSet. |
org.datanucleus.store.mapped.expression.LogicSetExpression |
newTableExpression(org.datanucleus.store.mapped.expression.QueryExpression qs,
org.datanucleus.store.mapped.DatastoreContainerObject table,
org.datanucleus.store.mapped.DatastoreIdentifier rangeVar)
Returns a new TableExpression object appropriate for this DBMS. |
org.datanucleus.store.mapped.expression.BooleanExpression |
startsWithMethod(org.datanucleus.store.mapped.expression.ScalarExpression source,
org.datanucleus.store.mapped.expression.ScalarExpression str)
Method to handle the starts with operation. |
org.datanucleus.store.mapped.expression.StringExpression |
substringMethod(org.datanucleus.store.mapped.expression.StringExpression str,
org.datanucleus.store.mapped.expression.NumericExpression begin)
Returns the appropriate SQL expression for the JDOQL String.substring(str,begin) method. |
org.datanucleus.store.mapped.expression.StringExpression |
substringMethod(org.datanucleus.store.mapped.expression.StringExpression str,
org.datanucleus.store.mapped.expression.NumericExpression begin,
org.datanucleus.store.mapped.expression.NumericExpression end)
Returns the appropriate SQL expression for the JDOQL String.substring(str,begin,end) method. |
org.datanucleus.store.mapped.expression.StringExpression |
toStringExpression(org.datanucleus.store.mapped.expression.StringLiteral expr)
A String conversion that converts a String literal to String expression. |
org.datanucleus.store.mapped.expression.StringExpression |
translateMethod(org.datanucleus.store.mapped.expression.ScalarExpression expr,
org.datanucleus.store.mapped.expression.ScalarExpression toExpr,
org.datanucleus.store.mapped.expression.ScalarExpression fromExpr)
Method to translate all chars in this expression to the fromExpr which
corresponds to toExpr. |
org.datanucleus.store.mapped.expression.StringExpression |
trimMethod(org.datanucleus.store.mapped.expression.StringExpression str,
boolean leading,
boolean trailing)
Returns the appropriate SQL expression for the java query "trim" method. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String DB2_RESERVED_WORDS
| Constructor Detail |
|---|
public DB2Adapter(java.sql.DatabaseMetaData metadata)
metadata - the database metadata.| Method Detail |
|---|
public void initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler,
org.datanucleus.ManagedConnection mconn)
initialiseTypes in interface org.datanucleus.store.mapped.DatastoreAdapterinitialiseTypes in class DatabaseAdapterhandler - SchemaHandler that we initialise the types formconn - Managed connection to usepublic java.lang.String getVendorID()
getVendorID in interface org.datanucleus.store.mapped.DatastoreAdaptergetVendorID in class DatabaseAdapter
public java.lang.String getSchemaName(java.sql.Connection conn)
throws java.sql.SQLException
DatabaseAdapter
getSchemaName in interface RDBMSAdaptergetSchemaName in class DatabaseAdapterconn - Connection to the datastore
java.sql.SQLException - Thrown if error occurs in determining the schema name.public int getDatastoreIdentifierMaxLength(org.datanucleus.store.mapped.IdentifierType identifierType)
getDatastoreIdentifierMaxLength in interface org.datanucleus.store.mapped.DatastoreAdaptergetDatastoreIdentifierMaxLength in class DatabaseAdapteridentifierType - Type of identifier (see IdentifierFactory.TABLE, etc)
public SQLTypeInfo newSQLTypeInfo(java.sql.ResultSet rs)
RDBMSAdapter
newSQLTypeInfo in interface RDBMSAdapternewSQLTypeInfo in class DatabaseAdapterrs - ResultSet
public RDBMSColumnInfo newRDBMSColumnInfo(java.sql.ResultSet rs)
newRDBMSColumnInfo in interface RDBMSAdapternewRDBMSColumnInfo in class DatabaseAdapterrs - ResultSet from DatabaseMetaData.getColumns()
public int getUnlimitedLengthPrecisionValue(SQLTypeInfo typeInfo)
DatabaseAdapter
getUnlimitedLengthPrecisionValue in interface RDBMSAdaptergetUnlimitedLengthPrecisionValue in class DatabaseAdaptertypeInfo - the typeInfo object for which the precision value is needed.
public java.lang.String getDropTableStatement(org.datanucleus.store.mapped.DatastoreContainerObject table)
DatabaseAdapter
DROP TABLE FOO CASCADE
getDropTableStatement in interface RDBMSAdaptergetDropTableStatement in class DatabaseAdaptertable - The table to drop.
public java.lang.String getAutoIncrementStmt(Table table,
java.lang.String columnName)
getAutoIncrementStmt in interface RDBMSAdaptergetAutoIncrementStmt in class DatabaseAdaptertable - Name of the table that the autoincrement is forcolumnName - Name of the column that the autoincrement is for
public java.lang.String getAutoIncrementKeyword()
getAutoIncrementKeyword in interface RDBMSAdaptergetAutoIncrementKeyword in class DatabaseAdapterpublic java.lang.String getContinuationString()
getContinuationString in class DatabaseAdapter
public java.lang.String getSequenceCreateStmt(java.lang.String sequence_name,
java.lang.String min,
java.lang.String max,
java.lang.String start,
java.lang.String increment,
java.lang.String cache_size)
getSequenceCreateStmt in interface RDBMSAdaptergetSequenceCreateStmt in class DatabaseAdaptersequence_name - Name of the sequencemin - Minimum value for the sequencemax - Maximum value for the sequencestart - Start value for the sequenceincrement - Increment value for the sequencecache_size - Cache size for the sequence
public java.lang.String getSequenceNextStmt(java.lang.String sequence_name)
getSequenceNextStmt in interface RDBMSAdaptergetSequenceNextStmt in class DatabaseAdaptersequence_name - Name of the sequence
public org.datanucleus.store.mapped.expression.StringExpression toStringExpression(org.datanucleus.store.mapped.expression.StringLiteral expr)
CAST(999999 AS VARCHAR(32672))
toStringExpression in interface org.datanucleus.store.mapped.expression.ExpressionConversionAdaptertoStringExpression in class DatabaseAdapterexpr - The NumericExpression
public org.datanucleus.store.mapped.expression.StringExpression translateMethod(org.datanucleus.store.mapped.expression.ScalarExpression expr,
org.datanucleus.store.mapped.expression.ScalarExpression toExpr,
org.datanucleus.store.mapped.expression.ScalarExpression fromExpr)
fromExpr which
corresponds to toExpr.
translateMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdaptertranslateMethod in class DatabaseAdapter
public org.datanucleus.store.mapped.expression.BooleanExpression startsWithMethod(org.datanucleus.store.mapped.expression.ScalarExpression source,
org.datanucleus.store.mapped.expression.ScalarExpression str)
startsWithMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdapterstartsWithMethod in class DatabaseAdaptersource - The expression with the searched stringstr - The expression for the search string
public org.datanucleus.store.mapped.expression.ScalarExpression concatOperator(org.datanucleus.store.mapped.expression.ScalarExpression operand1,
org.datanucleus.store.mapped.expression.ScalarExpression operand2)
If only one operand expression is of type String, then string conversion is performed on the other operand to produce a string at run time. The result is a reference to a String object (newly created, unless the expression is a compile-time constant expression (§15.28))that is the concatenation of the two operand strings. The characters of the left-hand operand precede the characters of the right-hand operand in the newly created string. If an operand of type String is null, then the string "null" is used instead of that operand. "null" is used instead of that operand.
Concatenates two or more character or binary strings, columns, or a combination of strings and column names into one expression (a string operator).
concatOperator in interface org.datanucleus.store.mapped.expression.ExpressionOperatorAdapterconcatOperator in class DatabaseAdapteroperand1 - the left expressionoperand2 - the right expression
public org.datanucleus.store.mapped.expression.BooleanExpression endsWithMethod(org.datanucleus.store.mapped.expression.ScalarExpression leftOperand,
org.datanucleus.store.mapped.expression.ScalarExpression rightOperand)
endsWithMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdapterendsWithMethod in class DatabaseAdapterleftOperand - the source stringrightOperand - The string to compare against.
public org.datanucleus.store.mapped.expression.LogicSetExpression newTableExpression(org.datanucleus.store.mapped.expression.QueryExpression qs,
org.datanucleus.store.mapped.DatastoreContainerObject table,
org.datanucleus.store.mapped.DatastoreIdentifier rangeVar)
DatabaseAdapter
newTableExpression in interface RDBMSAdapternewTableExpression in class DatabaseAdapterqs - 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.
public org.datanucleus.store.mapped.expression.NumericExpression modOperator(org.datanucleus.store.mapped.expression.ScalarExpression operand1,
org.datanucleus.store.mapped.expression.ScalarExpression operand2)
modOperator in interface org.datanucleus.store.mapped.DatastoreAdaptermodOperator in interface org.datanucleus.store.mapped.expression.ExpressionOperatorAdaptermodOperator in class DatabaseAdapteroperand1 - the left expressionoperand2 - the right expression
public org.datanucleus.store.mapped.expression.NumericExpression getNumericExpressionForMethod(java.lang.String method,
org.datanucleus.store.mapped.expression.ScalarExpression expr)
getNumericExpressionForMethod in interface org.datanucleus.store.mapped.DatastoreAdaptergetNumericExpressionForMethod in class DatabaseAdaptermethod - The method (case insensitive)expr - The argument to the method
public org.datanucleus.store.mapped.expression.StringExpression substringMethod(org.datanucleus.store.mapped.expression.StringExpression str,
org.datanucleus.store.mapped.expression.NumericExpression begin)
DatabaseAdapter
SUBSTRING(str FROM begin)Note that the value of begin is base 0(Java-style), while most SQL string functions use base 1.
substringMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdaptersubstringMethod in class DatabaseAdapterstr - The first argument to the substring() method.begin - The second argument to the substring() method.
public org.datanucleus.store.mapped.expression.StringExpression substringMethod(org.datanucleus.store.mapped.expression.StringExpression str,
org.datanucleus.store.mapped.expression.NumericExpression begin,
org.datanucleus.store.mapped.expression.NumericExpression end)
DatabaseAdapter
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.SUBSTRING(str FROM begin FOR len)
substringMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdaptersubstringMethod in class DatabaseAdapterstr - The first argument to the substring() method.begin - The second argument to the substring() method.end - The third argument to the substring() method.
public org.datanucleus.store.mapped.expression.StringExpression trimMethod(org.datanucleus.store.mapped.expression.StringExpression str,
boolean leading,
boolean trailing)
LTRIM(RTRIM(str))
trimMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdaptertrimMethod in class DatabaseAdapterstr - The first argument to the trim() method.leading - Whether to trim leading spacestrailing - Whether to trim trailing spaces
public org.datanucleus.store.mapped.expression.NumericExpression indexOfMethod(org.datanucleus.store.mapped.expression.ScalarExpression source,
org.datanucleus.store.mapped.expression.ScalarExpression str,
org.datanucleus.store.mapped.expression.NumericExpression from)
since LOCATE returns the first character as position 1. Similarly the "pos" is based on the first position being 1.LOCATE(str, substr [,pos])-1
indexOfMethod in interface org.datanucleus.store.mapped.expression.ExpressionMethodAdapterindexOfMethod in class DatabaseAdaptersource - The expression we want to search.str - The argument to the indexOf() method.from - The from position
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||