|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jumpmind.symmetric.db.AbstractDbDialect
public abstract class AbstractDbDialect
| Field Summary | |
|---|---|
protected org.apache.ddlutils.model.Database |
cachedModel
|
protected org.springframework.jdbc.core.JdbcTemplate |
jdbcTemplate
|
static int |
MAX_SYMMETRIC_SUPPORTED_TRIGGER_SIZE
|
protected org.apache.ddlutils.Platform |
platform
|
protected org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator |
sqlErrorTranslator
|
protected SqlTemplate |
sqlTemplate
|
protected java.lang.String |
tablePrefix
|
protected org.springframework.transaction.support.TransactionTemplate |
transactionTemplate
|
| Constructor Summary | |
|---|---|
protected |
AbstractDbDialect()
|
| Method Summary | |
|---|---|
protected void |
addPrefixAndCreateTablesIfNecessary(org.apache.ddlutils.model.Database targetTables)
|
protected boolean |
allowsNullForIdentityColumn()
|
void |
cleanupAfterDataLoad(org.apache.ddlutils.model.Table table)
This is called by the data loader each time the table context changes away from a table or when the the data loader is closed, giving the dialect an opportunity to do any post loading work for the given table. |
java.lang.String |
createCsvDataSql(Trigger trigger,
java.lang.String whereClause)
|
java.lang.String |
createCsvPrimaryKeySql(Trigger trigger,
java.lang.String whereClause)
|
java.lang.String |
createInitalLoadSqlFor(Node node,
Trigger trigger)
|
java.lang.String |
createPostTriggerDDL(DataEventType dml,
Trigger config,
TriggerHistory hist,
java.lang.String tablePrefix,
org.apache.ddlutils.model.Table table)
|
java.lang.String |
createPurgeSqlFor(Node node,
Trigger trigger,
TriggerHistory hist)
|
protected void |
createRequiredFunctions()
|
java.lang.Object |
createSavepoint()
|
java.lang.Object |
createSavepointForFallback()
|
void |
createTables(java.lang.String xml)
|
protected void |
determineAutoIncrementFromResultSetMetaData(org.apache.ddlutils.model.Table table,
org.apache.ddlutils.model.Column[] columnsToCheck)
|
void |
disableSyncTriggers()
|
boolean |
doesDatabaseNeedConfigured()
Check to see if the database is configured for symmetric already, or if it needs configured. |
boolean |
doesTriggerExist(java.lang.String catalogName,
java.lang.String schema,
java.lang.String tableName,
java.lang.String triggerName)
|
protected abstract boolean |
doesTriggerExistOnPlatform(java.lang.String catalogName,
java.lang.String schema,
java.lang.String tableName,
java.lang.String triggerName)
|
org.apache.ddlutils.model.Table |
findTable(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tblName)
|
protected void |
fixForeignKeys(org.apache.ddlutils.model.Table table,
java.lang.String tablePrefix,
boolean clone)
|
BinaryEncoding |
getBinaryEncoding()
|
protected org.apache.ddlutils.model.Database |
getConfigDdlDatabase()
|
protected java.net.URL |
getConfigDdlXml()
|
java.lang.String |
getCreateSymmetricDDL()
|
java.lang.String |
getCreateTableSQL(Trigger trig)
|
java.lang.String |
getCreateTableXML(Trigger trig)
|
IColumnFilter |
getDatabaseColumnFilter()
|
java.lang.String |
getEngineName()
Get the name of this symmetric instance. |
java.lang.String |
getIdentifierQuoteString()
|
org.springframework.jdbc.core.JdbcTemplate |
getJdbcTemplate()
|
int |
getMajorVersion()
|
int |
getMaxTriggerNameLength()
Provide a default implementation of this method using DDLUtils, getMaxColumnNameLength() |
org.apache.ddlutils.model.Table |
getMetaDataFor(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
boolean useCache)
This method uses the ddlutil's model reader which uses the jdbc metadata to lookup up table metadata. |
org.apache.ddlutils.model.Table |
getMetaDataFor(Trigger trigger,
boolean useCache)
|
int |
getMinorVersion()
|
java.lang.String |
getName()
|
org.apache.ddlutils.Platform |
getPlatform()
|
java.lang.String |
getProductVersion()
|
java.lang.String |
getSelectLastInsertIdSql(java.lang.String sequenceName)
|
protected java.lang.String |
getSequenceName(SequenceIdentifier identifier)
|
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator |
getSqlErrorTranslator()
|
int |
getStreamingResultsFetchSize()
|
java.lang.String |
getTablePrefix()
Get the string prepended to the Symmetric configuration tables. |
java.lang.String |
getTransactionTriggerExpression(Trigger trigger)
|
java.lang.String |
getTriggerName(DataEventType dml,
java.lang.String triggerPrefix,
int maxTriggerNameLength,
Trigger trigger,
TriggerHistory history)
|
java.lang.String |
getVersion()
|
void |
init(org.apache.ddlutils.Platform pf)
|
protected java.util.List<org.apache.ddlutils.platform.MetaDataColumnDescriptor> |
initColumnsForColumn()
|
protected java.util.List |
initColumnsForIndex()
|
protected java.util.List<org.apache.ddlutils.platform.MetaDataColumnDescriptor> |
initColumnsForPK()
|
protected java.util.List<org.apache.ddlutils.platform.MetaDataColumnDescriptor> |
initColumnsForTable()
|
void |
initConfigDb()
|
protected abstract void |
initForSpecificDialect()
|
void |
initTrigger(DataEventType dml,
Trigger trigger,
TriggerHistory hist,
java.lang.String tablePrefix,
org.apache.ddlutils.model.Table table)
Create the configured trigger. |
long |
insertWithGeneratedKey(java.lang.String sql,
SequenceIdentifier sequenceId)
|
long |
insertWithGeneratedKey(java.lang.String sql,
SequenceIdentifier sequenceId,
org.springframework.jdbc.core.PreparedStatementCallback callback)
|
boolean |
isBlobOverrideToBinary()
|
boolean |
isBlobSyncSupported()
|
boolean |
isClobSyncSupported()
|
boolean |
isDateOverrideToTimestamp()
|
boolean |
isTransactionIdOverrideSupported()
An indicator as to whether the ability to override the default transaction id provided by the dialect can be overridden in the trigger configuration. |
protected void |
makeAllColumnsPrimaryKeysIfNoPrimaryKeysFound(org.apache.ddlutils.model.Table table)
Treat tables with no primary keys as a table with all primary keys. |
protected boolean |
prefixConfigDatabase(org.apache.ddlutils.model.Database targetTables)
|
void |
prepareTableForDataLoad(org.apache.ddlutils.model.Table table)
This is called by the data loader each time the table context changes, giving the dialect an opportunity to do any pre loading work. |
protected org.apache.ddlutils.model.Column |
readColumn(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values)
|
protected java.util.Collection<org.apache.ddlutils.model.Column> |
readColumns(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.lang.String tableName)
|
protected java.util.Map<java.lang.String,java.lang.Object> |
readColumns(java.sql.ResultSet resultSet,
java.util.List columnDescriptors)
|
protected void |
readIndex(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values,
java.util.Map knownIndices)
|
protected java.util.Collection |
readIndices(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.lang.String tableName)
|
protected java.lang.String |
readPrimaryKeyName(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values)
|
protected java.util.Collection<java.lang.String> |
readPrimaryKeyNames(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.lang.String tableName)
|
protected org.apache.ddlutils.model.Table |
readTable(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values)
|
void |
releaseSavepoint(java.lang.Object savepoint)
|
java.lang.String |
replaceTemplateVariables(DataEventType dml,
Trigger trigger,
TriggerHistory history,
java.lang.String targetString)
Give access to the templating mechanism that is used for trigger creation. |
boolean |
requiresSavepointForFallback()
|
void |
rollbackToSavepoint(java.lang.Object savepoint)
|
void |
setParameterService(IParameterService parameterService)
|
void |
setSqlTemplate(SqlTemplate sqlTemplate)
|
void |
setStreamingResultsFetchSize(int streamingResultsFetchSize)
|
void |
setTablePrefix(java.lang.String tablePrefix)
|
void |
setTransactionTemplate(org.springframework.transaction.support.TransactionTemplate transactionTemplate)
|
boolean |
storesLowerCaseNamesInCatalog()
|
boolean |
storesUpperCaseNamesInCatalog()
|
boolean |
supportsGetGeneratedKeys()
|
boolean |
supportsTransactionId()
|
protected java.lang.String |
switchCatalogForTriggerInstall(java.lang.String catalog,
java.sql.Connection c)
Provide the option switch a connection's schema for trigger installation. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.jumpmind.symmetric.db.IDbDialect |
|---|
disableSyncTriggers, enableSyncTriggers, getDefaultCatalog, getDefaultSchema, getSyncTriggersExpression, isCharSpacePadded, isCharSpaceTrimmed, isEmptyStringNulled, purge, removeTrigger |
| Field Detail |
|---|
public static final int MAX_SYMMETRIC_SUPPORTED_TRIGGER_SIZE
protected org.springframework.jdbc.core.JdbcTemplate jdbcTemplate
protected org.apache.ddlutils.Platform platform
protected org.apache.ddlutils.model.Database cachedModel
protected SqlTemplate sqlTemplate
protected org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator sqlErrorTranslator
protected java.lang.String tablePrefix
protected org.springframework.transaction.support.TransactionTemplate transactionTemplate
| Constructor Detail |
|---|
protected AbstractDbDialect()
| Method Detail |
|---|
public IColumnFilter getDatabaseColumnFilter()
getDatabaseColumnFilter in interface IDbDialectpublic void prepareTableForDataLoad(org.apache.ddlutils.model.Table table)
IDbDialect
prepareTableForDataLoad in interface IDbDialectpublic void cleanupAfterDataLoad(org.apache.ddlutils.model.Table table)
IDbDialect
cleanupAfterDataLoad in interface IDbDialectprotected boolean allowsNullForIdentityColumn()
public int getMaxTriggerNameLength()
getMaxTriggerNameLength in interface IDbDialectpublic void init(org.apache.ddlutils.Platform pf)
protected abstract void initForSpecificDialect()
public void initConfigDb()
initConfigDb in interface IDbDialect
public final boolean doesTriggerExist(java.lang.String catalogName,
java.lang.String schema,
java.lang.String tableName,
java.lang.String triggerName)
doesTriggerExist in interface IDbDialectprotected void createRequiredFunctions()
public BinaryEncoding getBinaryEncoding()
getBinaryEncoding in interface IDbDialectpublic boolean isBlobOverrideToBinary()
isBlobOverrideToBinary in interface IDbDialectpublic boolean isDateOverrideToTimestamp()
isDateOverrideToTimestamp in interface IDbDialect
protected abstract boolean doesTriggerExistOnPlatform(java.lang.String catalogName,
java.lang.String schema,
java.lang.String tableName,
java.lang.String triggerName)
public java.lang.String getTransactionTriggerExpression(Trigger trigger)
getTransactionTriggerExpression in interface IDbDialect
public java.lang.String createInitalLoadSqlFor(Node node,
Trigger trigger)
createInitalLoadSqlFor in interface IDbDialect
public java.lang.String createPurgeSqlFor(Node node,
Trigger trigger,
TriggerHistory hist)
createPurgeSqlFor in interface IDbDialect
public java.lang.String createCsvDataSql(Trigger trigger,
java.lang.String whereClause)
createCsvDataSql in interface IDbDialect
public java.lang.String createCsvPrimaryKeySql(Trigger trigger,
java.lang.String whereClause)
createCsvPrimaryKeySql in interface IDbDialect
public org.apache.ddlutils.model.Table getMetaDataFor(Trigger trigger,
boolean useCache)
getMetaDataFor in interface IDbDialect
public org.apache.ddlutils.model.Table getMetaDataFor(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
boolean useCache)
getMetaDataFor in interface IDbDialect
public org.apache.ddlutils.model.Table findTable(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tblName)
throws java.lang.Exception
java.lang.Exceptionprotected void makeAllColumnsPrimaryKeysIfNoPrimaryKeysFound(org.apache.ddlutils.model.Table table)
protected org.apache.ddlutils.model.Table readTable(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values)
throws java.sql.SQLException
java.sql.SQLExceptionprotected java.util.List<org.apache.ddlutils.platform.MetaDataColumnDescriptor> initColumnsForTable()
protected java.util.List<org.apache.ddlutils.platform.MetaDataColumnDescriptor> initColumnsForColumn()
protected java.util.List<org.apache.ddlutils.platform.MetaDataColumnDescriptor> initColumnsForPK()
protected java.util.Collection<org.apache.ddlutils.model.Column> readColumns(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.lang.String tableName)
throws java.sql.SQLException
java.sql.SQLException
protected org.apache.ddlutils.model.Column readColumn(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values)
throws java.sql.SQLException
java.sql.SQLException
protected void determineAutoIncrementFromResultSetMetaData(org.apache.ddlutils.model.Table table,
org.apache.ddlutils.model.Column[] columnsToCheck)
throws java.sql.SQLException
java.sql.SQLException
protected java.util.Map<java.lang.String,java.lang.Object> readColumns(java.sql.ResultSet resultSet,
java.util.List columnDescriptors)
throws java.sql.SQLException
java.sql.SQLException
protected java.util.Collection<java.lang.String> readPrimaryKeyNames(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.lang.String tableName)
throws java.sql.SQLException
java.sql.SQLException
protected java.lang.String readPrimaryKeyName(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values)
throws java.sql.SQLException
java.sql.SQLExceptionprotected java.util.List initColumnsForIndex()
protected java.util.Collection readIndices(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.lang.String tableName)
throws java.sql.SQLException
java.sql.SQLException
protected void readIndex(org.apache.ddlutils.platform.DatabaseMetaDataWrapper metaData,
java.util.Map values,
java.util.Map knownIndices)
throws java.sql.SQLException
java.sql.SQLException
public void initTrigger(DataEventType dml,
Trigger trigger,
TriggerHistory hist,
java.lang.String tablePrefix,
org.apache.ddlutils.model.Table table)
initTrigger in interface IDbDialect
protected java.lang.String switchCatalogForTriggerInstall(java.lang.String catalog,
java.sql.Connection c)
throws java.sql.SQLException
java.sql.SQLException
public java.lang.String createPostTriggerDDL(DataEventType dml,
Trigger config,
TriggerHistory hist,
java.lang.String tablePrefix,
org.apache.ddlutils.model.Table table)
public java.lang.String getCreateSymmetricDDL()
getCreateSymmetricDDL in interface IDbDialectpublic java.lang.String getCreateTableSQL(Trigger trig)
getCreateTableSQL in interface IDbDialectpublic java.lang.String getCreateTableXML(Trigger trig)
getCreateTableXML in interface IDbDialectpublic void createTables(java.lang.String xml)
createTables in interface IDbDialectpublic boolean doesDatabaseNeedConfigured()
IDbDialect
doesDatabaseNeedConfigured in interface IDbDialectprotected boolean prefixConfigDatabase(org.apache.ddlutils.model.Database targetTables)
protected void addPrefixAndCreateTablesIfNecessary(org.apache.ddlutils.model.Database targetTables)
protected org.apache.ddlutils.model.Database getConfigDdlDatabase()
protected java.net.URL getConfigDdlXml()
protected void fixForeignKeys(org.apache.ddlutils.model.Table table,
java.lang.String tablePrefix,
boolean clone)
throws java.lang.CloneNotSupportedException
java.lang.CloneNotSupportedExceptionpublic org.apache.ddlutils.Platform getPlatform()
getPlatform in interface IDbDialectpublic java.lang.String getName()
getName in interface IDbDialectpublic java.lang.String getVersion()
getVersion in interface IDbDialectpublic int getMajorVersion()
getMajorVersion in interface IDbDialectpublic int getMinorVersion()
getMinorVersion in interface IDbDialectpublic java.lang.String getProductVersion()
getProductVersion in interface IDbDialect
public java.lang.String replaceTemplateVariables(DataEventType dml,
Trigger trigger,
TriggerHistory history,
java.lang.String targetString)
IDbDialect
replaceTemplateVariables in interface IDbDialectpublic boolean supportsGetGeneratedKeys()
public java.lang.String getSelectLastInsertIdSql(java.lang.String sequenceName)
getSelectLastInsertIdSql in interface IDbDialect
public long insertWithGeneratedKey(java.lang.String sql,
SequenceIdentifier sequenceId)
insertWithGeneratedKey in interface IDbDialectprotected java.lang.String getSequenceName(SequenceIdentifier identifier)
public long insertWithGeneratedKey(java.lang.String sql,
SequenceIdentifier sequenceId,
org.springframework.jdbc.core.PreparedStatementCallback callback)
insertWithGeneratedKey in interface IDbDialectpublic java.lang.Object createSavepoint()
createSavepoint in interface IDbDialectpublic java.lang.Object createSavepointForFallback()
createSavepointForFallback in interface IDbDialectpublic void rollbackToSavepoint(java.lang.Object savepoint)
rollbackToSavepoint in interface IDbDialectpublic void releaseSavepoint(java.lang.Object savepoint)
releaseSavepoint in interface IDbDialectpublic boolean requiresSavepointForFallback()
requiresSavepointForFallback in interface IDbDialectpublic void disableSyncTriggers()
disableSyncTriggers in interface IDbDialectpublic boolean supportsTransactionId()
supportsTransactionId in interface IDbDialectpublic boolean isBlobSyncSupported()
isBlobSyncSupported in interface IDbDialectpublic boolean isClobSyncSupported()
isClobSyncSupported in interface IDbDialectpublic boolean isTransactionIdOverrideSupported()
IDbDialect
isTransactionIdOverrideSupported in interface IDbDialectpublic boolean storesUpperCaseNamesInCatalog()
storesUpperCaseNamesInCatalog in interface IDbDialectpublic boolean storesLowerCaseNamesInCatalog()
storesLowerCaseNamesInCatalog in interface IDbDialectpublic void setSqlTemplate(SqlTemplate sqlTemplate)
public org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator getSqlErrorTranslator()
getSqlErrorTranslator in interface IDbDialectpublic void setTablePrefix(java.lang.String tablePrefix)
public int getStreamingResultsFetchSize()
getStreamingResultsFetchSize in interface IDbDialectpublic void setStreamingResultsFetchSize(int streamingResultsFetchSize)
public org.springframework.jdbc.core.JdbcTemplate getJdbcTemplate()
getJdbcTemplate in interface IDbDialectpublic void setTransactionTemplate(org.springframework.transaction.support.TransactionTemplate transactionTemplate)
public java.lang.String getEngineName()
IDbDialect
getEngineName in interface IDbDialectpublic java.lang.String getTablePrefix()
IDbDialect
getTablePrefix in interface IDbDialectpublic void setParameterService(IParameterService parameterService)
public java.lang.String getIdentifierQuoteString()
getIdentifierQuoteString in interface IDbDialect
public java.lang.String getTriggerName(DataEventType dml,
java.lang.String triggerPrefix,
int maxTriggerNameLength,
Trigger trigger,
TriggerHistory history)
getTriggerName in interface IDbDialect
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||