public class SQLAnywhereAdapter extends BaseDatastoreAdapter
Modifier and Type | Field and Description |
---|---|
protected int |
datastoreBuildVersion
SQL Anywhere uses a product version of "major.minor.revision.build"
|
protected int |
driverBuildVersion |
protected boolean |
usingjConnect |
catalogSeparator, datastoreMajorVersion, datastoreMinorVersion, datastoreProductName, datastoreProductVersion, datastoreRevisionVersion, driverMajorVersion, driverMinorVersion, driverName, driverVersion, identifierQuoteString, maxColumnNameLength, maxConstraintNameLength, maxIndexNameLength, maxTableNameLength, properties, reservedKeywords, supportedJdbcTypesById, supportedOptions, unsupportedJdbcTypesById
ACCESS_PARENTQUERY_IN_SUBQUERY_JOINED, ALTER_TABLE_DROP_CONSTRAINT_SYNTAX, ALTER_TABLE_DROP_FOREIGN_KEY_CONSTRAINT, ANALYSIS_METHODS, ANSI_CROSSJOIN_SYNTAX, ANSI_JOIN_SYNTAX, AUTO_INCREMENT_COLUMN_TYPE_SPECIFICATION, AUTO_INCREMENT_KEYS_NULL_SPECIFICATION, AUTO_INCREMENT_PK_IN_CREATE_TABLE_COLUMN_DEF, BIT_IS_REALLY_BOOLEAN, BLOB_SET_USING_SETSTRING, BOOLEAN_COMPARISON, CATALOGS_IN_TABLE_DEFINITIONS, CHAR_COLUMNS_PADDED_WITH_SPACES, CHECK_IN_CREATE_STATEMENTS, CHECK_IN_END_CREATE_STATEMENTS, CLOB_SET_USING_SETSTRING, CREATE_INDEXES_BEFORE_FOREIGN_KEYS, CROSSJOIN_ASINNER11_SYNTAX, DATETIME_STORES_MILLISECS, DEFAULT_BEFORE_NULL_IN_COLUMN_OPTIONS, DEFAULT_KEYWORD_IN_COLUMN_OPTIONS, DEFAULT_KEYWORD_WITH_NOT_NULL_IN_COLUMN_OPTIONS, DEFERRED_CONSTRAINTS, DISTINCT_WITH_SELECT_FOR_UPDATE, ESCAPE_EXPRESSION_IN_LIKE_PREDICATE, EXISTS_SYNTAX, FK_DELETE_ACTION_CASCADE, FK_DELETE_ACTION_DEFAULT, FK_DELETE_ACTION_NULL, FK_DELETE_ACTION_RESTRICT, FK_IN_END_CREATE_STATEMENTS, FK_UPDATE_ACTION_CASCADE, FK_UPDATE_ACTION_DEFAULT, FK_UPDATE_ACTION_NULL, FK_UPDATE_ACTION_RESTRICT, GET_GENERATED_KEYS_STATEMENT, GROUP_BY_REQUIRES_ALL_SELECT_PRIMARIES, GROUPING_WITH_SELECT_FOR_UPDATE, HAVING_WITH_SELECT_FOR_UPDATE, HOLD_CURSORS_OVER_COMMIT, IDENTIFIERS_LOWERCASE, IDENTIFIERS_LOWERCASE_QUOTED, IDENTIFIERS_MIXEDCASE, IDENTIFIERS_MIXEDCASE_QUOTED, IDENTIFIERS_MIXEDCASE_QUOTED_SENSITIVE, IDENTIFIERS_MIXEDCASE_SENSITIVE, IDENTIFIERS_UPPERCASE, IDENTIFIERS_UPPERCASE_QUOTED, IDENTITY_COLUMNS, INCLUDE_ORDERBY_COLS_IN_SELECT, LOCK_OPTION_PLACED_AFTER_FROM, LOCK_OPTION_PLACED_WITHIN_JOIN, LOCK_WITH_SELECT_FOR_UPDATE, MULTITABLES_WITH_SELECT_FOR_UPDATE, NULL_EQUALS_EMPTY_STRING, NULLS_IN_CANDIDATE_KEYS, NULLS_KEYWORD_IN_COLUMN_OPTIONS, OPERATOR_BITWISE_AND, OPERATOR_BITWISE_OR, OPERATOR_BITWISE_XOR, ORDERBY_NULLS_DIRECTIVES, ORDERBY_NULLS_USING_CASE_NULL, ORDERBY_NULLS_USING_COLUMN_IS_NULL, ORDERBY_NULLS_USING_ISNULL, ORDERBY_USING_SELECT_COLUMN_INDEX, ORDERING_WITH_SELECT_FOR_UPDATE, PERSIST_OF_UNASSIGNED_CHAR, PRIMARYKEY_IN_CREATE_STATEMENTS, PROJECTION_IN_TABLE_REFERENCE_JOINS, RESULTSET_TYPE_FORWARD_ONLY, RESULTSET_TYPE_SCROLL_INSENSITIVE, RESULTSET_TYPE_SCROLL_SENSITIVE, RIGHT_OUTER_JOIN, SCHEMAS_IN_TABLE_DEFINITIONS, SELECT_FOR_UPDATE_NOWAIT, SEQUENCES, SOME_ANY_ALL_SUBQUERY_EXPRESSIONS, STATEMENT_BATCHING, STORED_PROCEDURES, SUBQUERY_IN_HAVING, TX_ISOLATION_NONE, TX_ISOLATION_READ_COMMITTED, TX_ISOLATION_READ_UNCOMMITTED, TX_ISOLATION_REPEATABLE_READ, TX_ISOLATION_SERIALIZABLE, UNION_SYNTAX, UNIQUE_IN_END_CREATE_STATEMENTS, UPDATE_DELETE_STATEMENT_ALLOW_TABLE_ALIAS_IN_WHERE_CLAUSE, UPDATE_STATEMENT_ALLOW_TABLE_ALIAS_IN_SET_CLAUSE, USE_UNION_ALL, VIEWS
Constructor and Description |
---|
SQLAnywhereAdapter(DatabaseMetaData metadata)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
String |
getAddCandidateKeyStatement(CandidateKey ck,
IdentifierFactory factory)
Returns the appropriate SQL to add a candidate key to its table.
|
String |
getAddForeignKeyStatement(ForeignKey fk,
IdentifierFactory factory)
Method to define a foreign key definition
|
String |
getAddPrimaryKeyStatement(PrimaryKey pk,
IdentifierFactory factory)
Method to define a primary key definition
|
String |
getAutoIncrementKeyword()
Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...).
|
String |
getAutoIncrementStmt(Table table,
String columnName)
Accessor for the auto-increment sql statement for this datastore.
|
String |
getCreateDatabaseStatement(String catalogName,
String schemaName)
Method to return the statement necessary to create a database with this RDBMS.
|
String |
getCreateTableStatement(TableImpl table,
Column[] columns,
Properties props,
IdentifierFactory factory)
Returns the appropriate SQL to create the given table having the given columns.
|
String |
getDeleteTableStatement(SQLTable tbl)
Method to return the basic SQL for a DELETE TABLE statement.
|
String |
getDropDatabaseStatement(String catalogName,
String schemaName)
Method to return the statement necessary to drop a database with this RDBMS.
|
String |
getDropTableStatement(Table table)
Accessor for the DROP TABLE statement for SQL Anywhere SQL Anywhere doesn't support CASCADE so just
return a simple 'DROP TABLE table-name'
|
String |
getRangeByLimitEndOfStatementClause(long offset,
long count,
boolean hasOrdering)
Method to return the SQL to append to the WHERE clause of a SELECT statement to handle restriction of
ranges using the LIMIT keyword.
|
String |
getSelectNewUUIDStmt()
The function to creates a unique value of type uniqueidentifier.
|
String |
getSelectWithLockOption()
The option to specify in "SELECT ...
|
String |
getSequenceCreateStmt(String sequence_name,
Integer min,
Integer max,
Integer start,
Integer increment,
Integer cache_size)
Accessor for the sequence statement to create the sequence.
|
String |
getSequenceNextStmt(String sequence_name)
Accessor for the statement for getting the next id from the sequence for this datastore.
|
SQLText |
getUpdateTableStatement(SQLTable tbl,
SQLText setSQL)
Method to return the SQLText for an UPDATE TABLE statement.
|
String |
getVendorID()
Accessor for the Vendor ID for this datastore.
|
RDBMSColumnInfo |
newRDBMSColumnInfo(ResultSet rs)
Method to create a column info for the current row.
|
SQLTypeInfo |
newSQLTypeInfo(ResultSet rs)
Create a new SQL type info from the current row of the passed ResultSet.
|
boolean |
sequenceExists(Connection conn,
String catalogName,
String schemaName,
String seqName)
Determine if a sequence exists.
|
addSQLTypeForJDBCType, getAdapterTime, getAddColumnStatement, getAutoIncrementJavaTypeForType, getCatalogName, getCatalogSeparator, getCheckConstraintForValues, getColumns, getContinuationString, getCreateIndexStatement, getDatastoreDateStatement, getDatastoreDriverName, getDatastoreDriverVersion, getDatastoreIdentifierMaxLength, getDatastoreProductName, getDatastoreProductVersion, getDriverMajorVersion, getDriverMinorVersion, getDropViewStatement, getEscapeCharacter, getEscapePatternExpression, getExistingIndexes, getIdentifierQuoteString, getInsertStatementForNoColumns, getJDBCTypeForName, getMappingManager, getMaxForeignKeys, getMaxIndexes, getMiliseconds, getNameForJDBCType, getNewUUIDFunction, getNumericConversionFunction, getOperatorConcat, getOrderString, getPatternExpressionAnyCharacter, getPatternExpressionZeroMoreCharacters, getRangeByRowNumberColumn, getRangeByRowNumberColumn2, getRequiredTransactionIsolationLevel, getSchemaName, getSelectForUpdateText, getSQLTypeInfoForJdbcType, getSupportedOptions, getSurrogateForEmptyStrings, getTime, getTransactionIsolationForSchemaCreation, getUnlimitedLengthPrecisionValue, getValueForProperty, initialiseDatastore, initialiseTypes, isIdentityFieldDataType, isReservedKeyword, isStatementCancel, isStatementTimeout, isValidPrimaryKeyType, iteratorReservedWords, newFKInfo, removeUnsupportedMappings, setProperties, supportsOption, supportsQueryFetchSize, supportsTransactionIsolation, toString, validToIndexMapping, validToSelectMappingInStatement
protected int datastoreBuildVersion
protected int driverBuildVersion
protected boolean usingjConnect
public SQLAnywhereAdapter(DatabaseMetaData metadata)
metadata
- MetaData for the DBpublic String getAddCandidateKeyStatement(CandidateKey ck, IdentifierFactory factory)
ALTER TABLE FOO ADD CONSTRAINT FOO_CK UNIQUE (BAZ) ALTER TABLE FOO ADD UNIQUE (BAZ)
getAddCandidateKeyStatement
in interface DatastoreAdapter
getAddCandidateKeyStatement
in class BaseDatastoreAdapter
ck
- An object describing the candidate key.factory
- Identifier factorypublic String getVendorID()
DatastoreAdapter
getVendorID
in interface DatastoreAdapter
getVendorID
in class BaseDatastoreAdapter
public String getCreateDatabaseStatement(String catalogName, String schemaName) throws UnsupportedOperationException
DatastoreAdapter
getCreateDatabaseStatement
in interface DatastoreAdapter
getCreateDatabaseStatement
in class BaseDatastoreAdapter
catalogName
- name of the catalogschemaName
- Name of the schemaUnsupportedOperationException
public String getDropDatabaseStatement(String catalogName, String schemaName) throws UnsupportedOperationException
DatastoreAdapter
getDropDatabaseStatement
in interface DatastoreAdapter
getDropDatabaseStatement
in class BaseDatastoreAdapter
catalogName
- Name of the catalogschemaName
- Name of the schemaUnsupportedOperationException
public String getCreateTableStatement(TableImpl table, Column[] columns, Properties props, IdentifierFactory factory)
CREATE TABLE FOO ( BAR VARCHAR(30), BAZ INTEGER )
getCreateTableStatement
in interface DatastoreAdapter
getCreateTableStatement
in class BaseDatastoreAdapter
table
- The table to create.columns
- The columns of the table.props
- Properties for controlling the table creationfactory
- Factory for identifierspublic String getDropTableStatement(Table table)
getDropTableStatement
in interface DatastoreAdapter
getDropTableStatement
in class BaseDatastoreAdapter
table
- The table to drop.public String getSelectWithLockOption()
getSelectWithLockOption
in interface DatastoreAdapter
getSelectWithLockOption
in class BaseDatastoreAdapter
public String getDeleteTableStatement(SQLTable tbl)
DELETE MYTABLE FROM MYTABLE t1
.getDeleteTableStatement
in interface DatastoreAdapter
getDeleteTableStatement
in class BaseDatastoreAdapter
tbl
- The SQLTable to deletepublic String getAddPrimaryKeyStatement(PrimaryKey pk, IdentifierFactory factory)
getAddPrimaryKeyStatement
in interface DatastoreAdapter
getAddPrimaryKeyStatement
in class BaseDatastoreAdapter
pk
- An object describing the primary key.factory
- Identifier factorypublic String getAddForeignKeyStatement(ForeignKey fk, IdentifierFactory factory)
getAddForeignKeyStatement
in interface DatastoreAdapter
getAddForeignKeyStatement
in class BaseDatastoreAdapter
fk
- An object describing the foreign key.factory
- Identifier factorypublic SQLText getUpdateTableStatement(SQLTable tbl, SQLText setSQL)
UPDATE T1 SET x1 = val1, x2 = val2 FROM MYTBL T1
. Override if the datastore doesn't
support that standard syntax.getUpdateTableStatement
in interface DatastoreAdapter
getUpdateTableStatement
in class BaseDatastoreAdapter
tbl
- The primary tablesetSQL
- The SQLText for the SET componentpublic SQLTypeInfo newSQLTypeInfo(ResultSet rs)
DatastoreAdapter
newSQLTypeInfo
in interface DatastoreAdapter
newSQLTypeInfo
in class BaseDatastoreAdapter
rs
- ResultSetpublic RDBMSColumnInfo newRDBMSColumnInfo(ResultSet rs)
newRDBMSColumnInfo
in interface DatastoreAdapter
newRDBMSColumnInfo
in class BaseDatastoreAdapter
rs
- ResultSet from DatabaseMetaData.getColumns()public String getAutoIncrementStmt(Table table, String columnName)
getAutoIncrementStmt
in interface DatastoreAdapter
getAutoIncrementStmt
in class BaseDatastoreAdapter
table
- Name of the table that the autoincrement is forcolumnName
- Name of the column that the autoincrement is forpublic String getAutoIncrementKeyword()
getAutoIncrementKeyword
in interface DatastoreAdapter
getAutoIncrementKeyword
in class BaseDatastoreAdapter
public String getSequenceCreateStmt(String sequence_name, Integer min, Integer max, Integer start, Integer increment, Integer cache_size)
getSequenceCreateStmt
in interface DatastoreAdapter
getSequenceCreateStmt
in class BaseDatastoreAdapter
sequence_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 sequencepublic boolean sequenceExists(Connection conn, String catalogName, String schemaName, String seqName)
sequenceExists
in interface DatastoreAdapter
sequenceExists
in class BaseDatastoreAdapter
conn
- Connection to databasecatalogName
- Database catalog nameschemaName
- Database schema nameseqName
- Name of the sequencepublic String getSequenceNextStmt(String sequence_name)
getSequenceNextStmt
in interface DatastoreAdapter
getSequenceNextStmt
in class BaseDatastoreAdapter
sequence_name
- Name of the sequencepublic String getSelectNewUUIDStmt()
getSelectNewUUIDStmt
in interface DatastoreAdapter
getSelectNewUUIDStmt
in class BaseDatastoreAdapter
public String getRangeByLimitEndOfStatementClause(long offset, long count, boolean hasOrdering) throws UnsupportedOperationException
getRangeByLimitEndOfStatementClause
in interface DatastoreAdapter
getRangeByLimitEndOfStatementClause
in class BaseDatastoreAdapter
offset
- The offset to return fromcount
- The number of items to returnhasOrdering
- Whether ordering is presentUnsupportedOperationException
Copyright © 2017. All rights reserved.