Package org.jumpmind.symmetric.db
Class AbstractSymmetricDialect
java.lang.Object
org.jumpmind.symmetric.db.AbstractSymmetricDialect
- All Implemented Interfaces:
ISymmetricDialect
- Direct Known Subclasses:
AbstractEmbeddedSymmetricDialect,AseSymmetricDialect,Db2SymmetricDialect,DerbySymmetricDialect,FirebirdSymmetricDialect,GenericSymmetricDialect,HanaSymmetricDialect,HsqlDb2SymmetricDialect,InformixSymmetricDialect,IngresSymmetricDialect,InterbaseSymmetricDialect,MsSqlSymmetricDialect,MySqlSymmetricDialect,NuoDbSymmetricDialect,OracleSymmetricDialect,PostgreSqlSymmetricDialect,RaimaSymmetricDialect,RedshiftSymmetricDialect,SqlAnywhereSymmetricDialect,SqliteSymmetricDialect,TiberoSymmetricDialect,VoltDbSymmetricDialect
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intprotected Stringprotected Stringprotected Stringprotected Stringprotected IExtensionServiceprotected booleanprotected final org.slf4j.Loggerstatic final intprotected IParameterServiceprotected IDatabasePlatformprotected booleanprotected Booleanprotected booleanprotected booleanprotected booleanprotected Stringprotected ISymmetricDialectprotected AbstractTriggerTemplate -
Constructor Summary
ConstructorsConstructorDescriptionAbstractSymmetricDialect(IParameterService parameterService, IDatabasePlatform platform) -
Method Summary
Modifier and TypeMethodDescriptionbooleanareDatabaseTransactionsPendingSince(long time) protected voidbooleanvoidprotected voidclose(ISqlTransaction transaction) createCsvDataSql(Trigger trigger, TriggerHistory triggerHistory, Channel channel, String whereClause) createCsvPrimaryKeySql(Trigger trigger, TriggerHistory triggerHistory, Channel channel, String whereClause) voidcreateDdlTrigger(String tablePrefix, StringBuilder sqlBuffer, String triggerName, String runtimeCatalog, String runtimeSchema) createInitialLoadSqlFor(Node node, TriggerRouter trigger, Table table, TriggerHistory triggerHistory, Channel channel, String overrideSelectSql) booleancreateOrAlterTablesIfNecessary(String... tableNames) protected StringcreatePostDdlTriggerDDL(String tablePrefix, String triggerName) protected StringcreatePostTriggerDDL(DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table) createPurgeSqlFor(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory) createPurgeSqlFor(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory, List<TransformService.TransformTableNodeGroupLink> transforms) createPurgeSqlFor(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory, List<TransformService.TransformTableNodeGroupLink> transforms, String deleteSql) createPurgeSqlForMultipleTables(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory, List<TransformService.TransformTableNodeGroupLink> transforms, String deleteSql) abstract voidvoidcreateTrigger(StringBuilder sqlBuffer, DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table) voidcreateTrigger(StringBuilder sqlBuffer, DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table, ISqlTransaction transaction) voiddisableSyncTriggers(ISqlTransaction transaction) Deprecated.booleandoesDdlTriggerExist(String catalogName, String schema, String triggerName) final booleandoesTriggerExist(String catalogName, String schema, String tableName, String triggerName) protected abstract booleandoesTriggerExistOnPlatform(String catalogName, String schema, String tableName, String triggerName) abstract voidvoidbooleanabstract BinaryEncodingboolean[]getColumnPositionUsingTemplate(Table originalTable, TriggerHistory triggerHistory) longgetCurrentSequenceValue(SequenceIdentifier identifier) longfinal StringgetDataHasChangedCondition(Trigger trigger) protected Stringprotected StringgetDropTriggerSql(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName) getInitialLoadTwoPassLobLengthSql(Column column, boolean isFirstPass) getInitialLoadTwoPassLobSql(String sql, Table table, boolean isFirstPass) intintintgetName()getSequenceKeyName(SequenceIdentifier identifier) getSequenceName(SequenceIdentifier identifier) intgetTargetDialect(String tableName) getTargetPlatform(String tableName) getTransactionTriggerExpression(String defaultCatalog, String defaultSchema, Trigger trigger) voidlonginsertWithGeneratedKey(String sql, SequenceIdentifier sequenceId) longinsertWithGeneratedKey(String sql, SequenceIdentifier identifier, Object... args) protected voidprotected booleanbooleanbooleanbooleanisInitialLoadTwoPassLob(Table table) booleanprotected final voidlogSql(String sql, StringBuilder sqlBuffer) massageDataExtractionSql(String sql, boolean isContainsBigLob) massageForLob(String sql, boolean isContainsBigLob) protected DatabasebooleanColumn[]orderColumns(String[] columnNames, Table table) Deprecated.protected voidpostCreateDdlTrigger(ISqlTransaction transaction, String tablePrefix, StringBuilder sqlBuffer, String triggerName) protected voidpostCreateTrigger(ISqlTransaction transaction, StringBuilder sqlBuffer, DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table) protected voidprefixConfigDatabase(Database targetTables) preProcessTriggerSqlClause(String sqlClause) protected DatabasereadDatabaseFromXml(String resourceName) voidremoveDdlTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName) voidremoveTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName) voidremoveTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName, ISqlTransaction transaction) protected StringreplaceTokens(String sql, String objectName) booleanvoidsetExtensionService(IExtensionService extensionService) voidsetTargetDialect(ISymmetricDialect targetDialect) booleanbooleanbooleanbooleanbooleanbooleanbooleanprotected StringswitchCatalogForTriggerInstall(String catalog, ISqlTransaction transaction) voidtruncateTable(String tableName) protected voidvoidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jumpmind.symmetric.db.ISymmetricDialect
cleanDatabase, disableSyncTriggers, enableSyncTriggers, getSyncTriggersExpression
-
Field Details
-
log
protected final org.slf4j.Logger log -
MAX_SYMMETRIC_SUPPORTED_TRIGGER_SIZE
public static final int MAX_SYMMETRIC_SUPPORTED_TRIGGER_SIZE- See Also:
-
platform
-
targetDialect
-
triggerTemplate
-
parameterService
-
extensionService
-
supportsGetGeneratedKeys
-
databaseName
-
driverVersion
-
driverName
-
databaseMajorVersion
protected int databaseMajorVersion -
databaseMinorVersion
protected int databaseMinorVersion -
databaseProductVersion
-
sqlKeywords
-
supportsTransactionViews
protected boolean supportsTransactionViews -
supportsSubselectsInDelete
protected boolean supportsSubselectsInDelete -
supportsSubselectsInUpdate
protected boolean supportsSubselectsInUpdate -
supportsDdlTriggers
protected boolean supportsDdlTriggers -
sqlReplacementTokens
-
tablePrefixLowerCase
-
isSpatialTypesEnabled
protected boolean isSpatialTypesEnabled
-
-
Constructor Details
-
AbstractSymmetricDialect
-
-
Method Details
-
getSymmetricDdlChanges
- Specified by:
getSymmetricDdlChangesin interfaceISymmetricDialect
-
requiresAutoCommitFalseToSetFetchSize
public boolean requiresAutoCommitFalseToSetFetchSize() -
buildSqlReplacementTokens
protected void buildSqlReplacementTokens() -
getSqlReplacementTokens
- Specified by:
getSqlReplacementTokensin interfaceISymmetricDialect
-
getMaxTriggerNameLength
public int getMaxTriggerNameLength()- Specified by:
getMaxTriggerNameLengthin interfaceISymmetricDialect
-
verifyDatabaseIsCompatible
public void verifyDatabaseIsCompatible()- Specified by:
verifyDatabaseIsCompatiblein interfaceISymmetricDialect
-
initTablesAndDatabaseObjects
public void initTablesAndDatabaseObjects()- Specified by:
initTablesAndDatabaseObjectsin interfaceISymmetricDialect
-
replaceTokens
-
installed
-
install
-
uninstall
-
dropTablesAndDatabaseObjects
public void dropTablesAndDatabaseObjects()- Specified by:
dropTablesAndDatabaseObjectsin interfaceISymmetricDialect
-
doesTriggerExist
public final boolean doesTriggerExist(String catalogName, String schema, String tableName, String triggerName) - Specified by:
doesTriggerExistin interfaceISymmetricDialect
-
doesDdlTriggerExist
- Specified by:
doesDdlTriggerExistin interfaceISymmetricDialect
-
dropRequiredDatabaseObjects
public abstract void dropRequiredDatabaseObjects()- Specified by:
dropRequiredDatabaseObjectsin interfaceISymmetricDialect
-
createRequiredDatabaseObjects
public abstract void createRequiredDatabaseObjects()- Specified by:
createRequiredDatabaseObjectsin interfaceISymmetricDialect
-
getBinaryEncoding
- Specified by:
getBinaryEncodingin interfaceISymmetricDialect
-
doesTriggerExistOnPlatform
-
getTransactionTriggerExpression
public String getTransactionTriggerExpression(String defaultCatalog, String defaultSchema, Trigger trigger) - Specified by:
getTransactionTriggerExpressionin interfaceISymmetricDialect
-
createInitialLoadSqlFor
public String createInitialLoadSqlFor(Node node, TriggerRouter trigger, Table table, TriggerHistory triggerHistory, Channel channel, String overrideSelectSql) - Specified by:
createInitialLoadSqlForin interfaceISymmetricDialect
-
getColumnPositionUsingTemplate
- Specified by:
getColumnPositionUsingTemplatein interfaceISymmetricDialect
-
createPurgeSqlFor
public String createPurgeSqlFor(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory) - Specified by:
createPurgeSqlForin interfaceISymmetricDialect
-
createPurgeSqlFor
public String createPurgeSqlFor(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory, List<TransformService.TransformTableNodeGroupLink> transforms) - Specified by:
createPurgeSqlForin interfaceISymmetricDialect
-
createPurgeSqlFor
public String createPurgeSqlFor(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory, List<TransformService.TransformTableNodeGroupLink> transforms, String deleteSql) - Specified by:
createPurgeSqlForin interfaceISymmetricDialect
-
createPurgeSqlForMultipleTables
public List<String> createPurgeSqlForMultipleTables(Node node, TriggerRouter triggerRouter, TriggerHistory triggerHistory, List<TransformService.TransformTableNodeGroupLink> transforms, String deleteSql) - Specified by:
createPurgeSqlForMultipleTablesin interfaceISymmetricDialect
-
createCsvDataSql
public String createCsvDataSql(Trigger trigger, TriggerHistory triggerHistory, Channel channel, String whereClause) - Specified by:
createCsvDataSqlin interfaceISymmetricDialect
-
createCsvPrimaryKeySql
public String createCsvPrimaryKeySql(Trigger trigger, TriggerHistory triggerHistory, Channel channel, String whereClause) - Specified by:
createCsvPrimaryKeySqlin interfaceISymmetricDialect
-
getSqlKeywords
- Specified by:
getSqlKeywordsin interfaceISymmetricDialect
-
getDropTriggerSql
-
removeTrigger
public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName) - Specified by:
removeTriggerin interfaceISymmetricDialect
-
removeTrigger
public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName, ISqlTransaction transaction) - Specified by:
removeTriggerin interfaceISymmetricDialect
-
removeDdlTrigger
public void removeDdlTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName) - Specified by:
removeDdlTriggerin interfaceISymmetricDialect
-
logSql
-
createTrigger
public void createTrigger(StringBuilder sqlBuffer, DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table) - Specified by:
createTriggerin interfaceISymmetricDialect
-
createTrigger
public void createTrigger(StringBuilder sqlBuffer, DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table, ISqlTransaction transaction) - Specified by:
createTriggerin interfaceISymmetricDialect
-
postCreateTrigger
protected void postCreateTrigger(ISqlTransaction transaction, StringBuilder sqlBuffer, DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table) -
switchCatalogForTriggerInstall
-
createPostTriggerDDL
protected String createPostTriggerDDL(DataEventType dml, Trigger trigger, TriggerHistory hist, Channel channel, String tablePrefix, Table table) -
createDdlTrigger
public void createDdlTrigger(String tablePrefix, StringBuilder sqlBuffer, String triggerName, String runtimeCatalog, String runtimeSchema) - Specified by:
createDdlTriggerin interfaceISymmetricDialect
-
postCreateDdlTrigger
protected void postCreateDdlTrigger(ISqlTransaction transaction, String tablePrefix, StringBuilder sqlBuffer, String triggerName) -
createPostDdlTriggerDDL
-
getCreateSymmetricDDL
- Specified by:
getCreateSymmetricDDLin interfaceISymmetricDialect
-
prefixConfigDatabase
-
createOrAlterTablesIfNecessary
- Specified by:
createOrAlterTablesIfNecessaryin interfaceISymmetricDialect
-
readSymmetricSchemaFromXml
- Specified by:
readSymmetricSchemaFromXmlin interfaceISymmetricDialect
-
readSymmetricSchemaFromDatabase
-
readDatabaseFromXml
- Throws:
IOException
-
merge
-
getPlatform
- Specified by:
getPlatformin interfaceISymmetricDialect
-
getTargetPlatform
- Specified by:
getTargetPlatformin interfaceISymmetricDialect
-
getTargetPlatform
- Specified by:
getTargetPlatformin interfaceISymmetricDialect
-
getName
- Specified by:
getNamein interfaceISymmetricDialect
-
getVersion
- Specified by:
getVersionin interfaceISymmetricDialect
-
getMajorVersion
public int getMajorVersion()- Specified by:
getMajorVersionin interfaceISymmetricDialect
-
getMinorVersion
public int getMinorVersion()- Specified by:
getMinorVersionin interfaceISymmetricDialect
-
getProductVersion
- Specified by:
getProductVersionin interfaceISymmetricDialect
-
supportsTransactionViews
public boolean supportsTransactionViews()- Specified by:
supportsTransactionViewsin interfaceISymmetricDialect
-
supportsSubselectsInDelete
public boolean supportsSubselectsInDelete()- Specified by:
supportsSubselectsInDeletein interfaceISymmetricDialect
-
supportsSubselectsInUpdate
public boolean supportsSubselectsInUpdate()- Specified by:
supportsSubselectsInUpdatein interfaceISymmetricDialect
-
supportsDdlTriggers
public boolean supportsDdlTriggers()- Specified by:
supportsDdlTriggersin interfaceISymmetricDialect
-
insertWithGeneratedKey
- Specified by:
insertWithGeneratedKeyin interfaceISymmetricDialect
-
insertWithGeneratedKey
- Specified by:
insertWithGeneratedKeyin interfaceISymmetricDialect
-
getSequenceName
- Specified by:
getSequenceNamein interfaceISymmetricDialect
-
getSequenceKeyName
- Specified by:
getSequenceKeyNamein interfaceISymmetricDialect
-
getCurrentSequenceValue
- Specified by:
getCurrentSequenceValuein interfaceISymmetricDialect
-
orderColumns
Deprecated.- Specified by:
orderColumnsin interfaceISymmetricDialect
-
disableSyncTriggers
Deprecated.- Specified by:
disableSyncTriggersin interfaceISymmetricDialect
-
supportsTransactionId
public boolean supportsTransactionId()- Specified by:
supportsTransactionIdin interfaceISymmetricDialect
-
isBlobSyncSupported
public boolean isBlobSyncSupported()- Specified by:
isBlobSyncSupportedin interfaceISymmetricDialect
-
isClobSyncSupported
public boolean isClobSyncSupported()- Specified by:
isClobSyncSupportedin interfaceISymmetricDialect
-
isTransactionIdOverrideSupported
public boolean isTransactionIdOverrideSupported()- Specified by:
isTransactionIdOverrideSupportedin interfaceISymmetricDialect
-
getEngineName
- Specified by:
getEngineNamein interfaceISymmetricDialect
-
supportsOpenCursorsAcrossCommit
public boolean supportsOpenCursorsAcrossCommit()- Specified by:
supportsOpenCursorsAcrossCommitin interfaceISymmetricDialect
-
getInitialLoadTableAlias
- Specified by:
getInitialLoadTableAliasin interfaceISymmetricDialect
-
preProcessTriggerSqlClause
- Specified by:
preProcessTriggerSqlClausein interfaceISymmetricDialect
-
truncateTable
- Specified by:
truncateTablein interfaceISymmetricDialect
-
areDatabaseTransactionsPendingSince
public boolean areDatabaseTransactionsPendingSince(long time) - Specified by:
areDatabaseTransactionsPendingSincein interfaceISymmetricDialect
-
getEarliestTransactionStartTime
- Specified by:
getEarliestTransactionStartTimein interfaceISymmetricDialect
-
getDatabaseTimeSQL
- Specified by:
getDatabaseTimeSQLin interfaceISymmetricDialect
-
getDatabaseTime
public long getDatabaseTime()- Specified by:
getDatabaseTimein interfaceISymmetricDialect
-
getSourceNodeExpression
- Specified by:
getSourceNodeExpressionin interfaceISymmetricDialect
-
getDataHasChangedCondition
- Specified by:
getDataHasChangedConditionin interfaceISymmetricDialect
-
getDbSpecificDataHasChangedCondition
-
needsToSelectLobData
public boolean needsToSelectLobData()- Specified by:
needsToSelectLobDatain interfaceISymmetricDialect
-
canGapsOccurInCapturedDataIds
public boolean canGapsOccurInCapturedDataIds()- Specified by:
canGapsOccurInCapturedDataIdsin interfaceISymmetricDialect
-
massageDataExtractionSql
- Specified by:
massageDataExtractionSqlin interfaceISymmetricDialect
-
getDriverName
- Specified by:
getDriverNamein interfaceISymmetricDialect
-
getDriverVersion
- Specified by:
getDriverVersionin interfaceISymmetricDialect
-
massageForLob
- Specified by:
massageForLobin interfaceISymmetricDialect
-
isInitialLoadTwoPassLob
- Specified by:
isInitialLoadTwoPassLobin interfaceISymmetricDialect
-
getInitialLoadTwoPassLobSql
- Specified by:
getInitialLoadTwoPassLobSqlin interfaceISymmetricDialect
-
getInitialLoadTwoPassLobLengthSql
-
escapesTemplatesForDatabaseInserts
public boolean escapesTemplatesForDatabaseInserts()- Specified by:
escapesTemplatesForDatabaseInsertsin interfaceISymmetricDialect
-
getMasterCollation
- Specified by:
getMasterCollationin interfaceISymmetricDialect
-
supportsBatchUpdates
public boolean supportsBatchUpdates()- Specified by:
supportsBatchUpdatesin interfaceISymmetricDialect
-
cleanupTriggers
public void cleanupTriggers()- Specified by:
cleanupTriggersin interfaceISymmetricDialect
-
getTriggerTemplate
- Specified by:
getTriggerTemplatein interfaceISymmetricDialect
-
close
-
getTablePrefix
- Specified by:
getTablePrefixin interfaceISymmetricDialect
-
getTemplateNumberPrecisionSpec
- Specified by:
getTemplateNumberPrecisionSpecin interfaceISymmetricDialect
-
getSqlTypeForIds
public int getSqlTypeForIds()- Specified by:
getSqlTypeForIdsin interfaceISymmetricDialect
-
getParameterService
- Specified by:
getParameterServicein interfaceISymmetricDialect
-
setExtensionService
- Specified by:
setExtensionServicein interfaceISymmetricDialect
-
getSymTablePermissions
- Specified by:
getSymTablePermissionsin interfaceISymmetricDialect
-
getTargetDialect
- Specified by:
getTargetDialectin interfaceISymmetricDialect
-
getTargetDialect
- Specified by:
getTargetDialectin interfaceISymmetricDialect
-
setTargetDialect
- Specified by:
setTargetDialectin interfaceISymmetricDialect
-
getSyncTriggersOnIncomingExpression
- Specified by:
getSyncTriggersOnIncomingExpressionin interfaceISymmetricDialect
-