|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.dbreplicator.replication.DBHandler
Class PostgreSQLHandler
java.lang.Objectorg.dbreplicator.replication.DBHandler.AbstractDataBaseHandler
org.dbreplicator.replication.DBHandler.PostgreSQLHandler
public class PostgreSQLHandler
- extends AbstractDataBaseHandler
Method overrides specific to the PostgreSQL database engine, from versions 7.3 to 8.3.
| Field Summary |
|---|
| Fields inherited from class org.dbreplicator.replication.DBHandler.AbstractDataBaseHandler |
|---|
ignoredColumns_Table, trackPrimaryKeyUpdation_Table, trackReplicationTablesUpdation_Table |
| Constructor Summary | |
|---|---|
PostgreSQLHandler()
|
|
PostgreSQLHandler(ConnectionPool connectionPool0)
|
|
| Method Summary | |
|---|---|
java.lang.String |
createFunctionHandler()
|
java.lang.String |
createFunctionLanguage()
|
void |
createSchemas(java.lang.String pubName,
java.util.ArrayList schemas)
|
void |
createShadowTable(java.lang.String pubsubName,
java.lang.String tableName,
java.lang.String allColseq,
java.lang.String[] primaryColumns)
Creates Shadow Table as per the database. |
void |
createShadowTableTriggers(java.lang.String pubsubName,
java.lang.String tableName,
java.util.ArrayList colInfoList,
java.lang.String[] primCols)
Creates ShadowTable triggers on different replication tables. |
void |
createSubscribedTablesTriggersAndShadowTables(java.lang.String subName,
java.lang.String[] pubTableQueries,
java.util.HashMap primCols,
int pubVendorType,
java.util.ArrayList repTables)
|
void |
dropTriggersAndShadowTable(java.sql.Connection connection,
java.lang.String table,
java.lang.String pubsubName)
|
java.lang.String |
functionForDeleteTrigger(java.lang.String tableName,
java.lang.String colNameSeqPrefixOldRow,
java.lang.String primColNameSeqPrefixOldRow,
java.lang.String shadowTableName,
java.lang.String colNameSeq,
java.lang.String primColumnNamesSeq,
java.lang.String serverName)
|
java.lang.String |
functionForInsertTrigger(java.lang.String tableName,
java.lang.String shadowTableName,
java.lang.String primColumnNamesSeq,
java.lang.String colNameSeq,
java.lang.String colNameSeqPrefixNewRow,
java.lang.String primColNameSeqPrefixNewRow,
java.lang.String serverName)
|
java.lang.String |
functionForUpdateTrigger(java.lang.String tableName,
java.lang.String colNameSeqPrefixOldRow,
java.lang.String primColNameSeqPrefixOldRow,
java.lang.String shadowTableName,
java.lang.String colNameSeq,
java.lang.String primColumnNamesSeq,
java.lang.String serverName,
java.lang.String colNameSeqPrefixNewRow,
java.lang.String[] primColsOld,
java.lang.String[] primColsNew)
|
int |
getAppropriatePrecision(int columnSize,
java.lang.String datatypeName)
This method is implemented in child classes if precision exceed the maximum precision of the data type |
int |
getAppropriateScale(int columnScale)
|
java.lang.String |
getBookMarkTableName()
|
AbstractColumnObject |
getColumnObject(TypeInfo typeInfo)
According to the sqlType, different column's for different databases are handled saperately. |
java.lang.String |
getIgnoredColumns_Table()
|
java.lang.String |
getLogTableName()
|
boolean |
getPrimaryKeyErrorCode(java.sql.SQLException ex)
|
java.lang.String |
getPublicationTableName()
|
java.lang.String |
getRepTableName()
|
java.lang.String |
getSubscriptionTableName()
|
java.lang.String |
getTrackPrimayKeyUpdation_Table()
|
java.lang.String |
getTrackReplicationTablesUpdation_Table()
|
java.lang.String |
insertRecordIntoLogTable(java.lang.String tableName)
|
boolean |
isColumnSizeExceedMaximumSize(TypeInfo typeInfo)
|
boolean |
isColumnSizeExceedMaximumSize1(java.sql.ResultSet rs,
TypeInfo typeInfo)
|
boolean |
isDataTypeOptionalSizeSupported(TypeInfo typeInfo)
|
boolean |
isForeignKeyException(java.sql.SQLException ex)
To get the foreign key error code to resolve the Synchronization problem when tables have parent - child relationship. |
boolean |
isPrimaryKeyException(java.sql.SQLException ex)
isPrimaryKeyException |
boolean |
isSchemaSupported()
isSchemaSupported |
java.sql.PreparedStatement |
makePrimaryPreperedStatement(java.sql.Connection pub_sub_Connection,
java.lang.String[] primaryColumns,
java.lang.String shadowTable,
java.lang.String local_pub_sub_name)
|
java.sql.PreparedStatement |
makePrimaryPreperedStatementBackwardTraversing(java.lang.String[] primaryColumns,
long lastId,
java.lang.String local_pub_sub_name,
java.lang.String shadowTable)
|
void |
setTypeInfo(TypeInfo typeInfo,
java.sql.ResultSet rs)
This is a very important function which sets the parameter (instance of Class TypeInfo) with the corresponding typeName of the sqlType for different databases. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
PostgreSQLHandler
public PostgreSQLHandler()
PostgreSQLHandler
public PostgreSQLHandler(ConnectionPool connectionPool0)
| Method Detail |
|---|
createShadowTable
public void createShadowTable(java.lang.String pubsubName, java.lang.String tableName, java.lang.String allColseq, java.lang.String[] primaryColumns) throws RepException
- Description copied from class:
AbstractDataBaseHandler - Creates Shadow Table as per the database.
- Specified by:
createShadowTablein classAbstractDataBaseHandler
- Throws:
RepException
createShadowTableTriggers
public void createShadowTableTriggers(java.lang.String pubsubName, java.lang.String tableName, java.util.ArrayList colInfoList, java.lang.String[] primCols) throws RepException
- Description copied from class:
AbstractDataBaseHandler - Creates ShadowTable triggers on different replication tables.
- Specified by:
createShadowTableTriggersin classAbstractDataBaseHandler
- Throws:
RepException
createFunctionHandler
public java.lang.String createFunctionHandler()
createFunctionLanguage
public java.lang.String createFunctionLanguage()
functionForInsertTrigger
public java.lang.String functionForInsertTrigger(java.lang.String tableName, java.lang.String shadowTableName, java.lang.String primColumnNamesSeq, java.lang.String colNameSeq, java.lang.String colNameSeqPrefixNewRow, java.lang.String primColNameSeqPrefixNewRow, java.lang.String serverName)
functionForUpdateTrigger
public java.lang.String functionForUpdateTrigger(java.lang.String tableName, java.lang.String colNameSeqPrefixOldRow, java.lang.String primColNameSeqPrefixOldRow, java.lang.String shadowTableName, java.lang.String colNameSeq, java.lang.String primColumnNamesSeq, java.lang.String serverName, java.lang.String colNameSeqPrefixNewRow, java.lang.String[] primColsOld, java.lang.String[] primColsNew)
functionForDeleteTrigger
public java.lang.String functionForDeleteTrigger(java.lang.String tableName, java.lang.String colNameSeqPrefixOldRow, java.lang.String primColNameSeqPrefixOldRow, java.lang.String shadowTableName, java.lang.String colNameSeq, java.lang.String primColumnNamesSeq, java.lang.String serverName)
insertRecordIntoLogTable
public java.lang.String insertRecordIntoLogTable(java.lang.String tableName)
dropTriggersAndShadowTable
public void dropTriggersAndShadowTable(java.sql.Connection connection, java.lang.String table, java.lang.String pubsubName) throws java.sql.SQLException, RepException
- Overrides:
dropTriggersAndShadowTablein classAbstractDataBaseHandler
- Throws:
java.sql.SQLExceptionRepException
createSubscribedTablesTriggersAndShadowTables
public void createSubscribedTablesTriggersAndShadowTables(java.lang.String subName, java.lang.String[] pubTableQueries, java.util.HashMap primCols, int pubVendorType, java.util.ArrayList repTables) throws RepException, java.sql.SQLException
- Throws:
RepExceptionjava.sql.SQLException
isDataTypeOptionalSizeSupported
public boolean isDataTypeOptionalSizeSupported(TypeInfo typeInfo)
- Specified by:
isDataTypeOptionalSizeSupportedin classAbstractDataBaseHandler
setTypeInfo
public void setTypeInfo(TypeInfo typeInfo, java.sql.ResultSet rs) throws RepException, java.sql.SQLException
- Description copied from class:
AbstractDataBaseHandler - This is a very important function which sets the parameter (instance of
Class TypeInfo) with the corresponding typeName of the sqlType for different
databases. So that we can make corresponding queries.
- Specified by:
setTypeInfoin classAbstractDataBaseHandler
- Throws:
RepExceptionjava.sql.SQLException
getColumnObject
public AbstractColumnObject getColumnObject(TypeInfo typeInfo) throws RepException
- Description copied from class:
AbstractDataBaseHandler - According to the sqlType, different column's for different databases are handled
saperately. It returns the object of AbstractColumnObject which is extended
by each type of column Object classes. This fundamental is used basically for
handeling Blob and Clob type of columns.
- Specified by:
getColumnObjectin classAbstractDataBaseHandler
- Throws:
RepException
createSchemas
public void createSchemas(java.lang.String pubName, java.util.ArrayList schemas) throws java.sql.SQLException, RepException
- Overrides:
createSchemasin classAbstractDataBaseHandler
- Throws:
java.sql.SQLExceptionRepException
getPublicationTableName
public java.lang.String getPublicationTableName()
- Overrides:
getPublicationTableNamein classAbstractDataBaseHandler
getSubscriptionTableName
public java.lang.String getSubscriptionTableName()
- Overrides:
getSubscriptionTableNamein classAbstractDataBaseHandler
getRepTableName
public java.lang.String getRepTableName()
- Overrides:
getRepTableNamein classAbstractDataBaseHandler
getLogTableName
public java.lang.String getLogTableName()
- Overrides:
getLogTableNamein classAbstractDataBaseHandler
getBookMarkTableName
public java.lang.String getBookMarkTableName()
- Overrides:
getBookMarkTableNamein classAbstractDataBaseHandler
isColumnSizeExceedMaximumSize
public boolean isColumnSizeExceedMaximumSize(TypeInfo typeInfo) throws java.sql.SQLException, RepException
- Throws:
java.sql.SQLExceptionRepException
isColumnSizeExceedMaximumSize1
public boolean isColumnSizeExceedMaximumSize1(java.sql.ResultSet rs, TypeInfo typeInfo) throws java.sql.SQLException, RepException
- Throws:
java.sql.SQLExceptionRepException
getPrimaryKeyErrorCode
public boolean getPrimaryKeyErrorCode(java.sql.SQLException ex) throws java.sql.SQLException
- Throws:
java.sql.SQLException
getAppropriatePrecision
public int getAppropriatePrecision(int columnSize, java.lang.String datatypeName)
- Description copied from class:
AbstractDataBaseHandler - This method is implemented in child classes if precision exceed the
maximum precision of the data type
- Overrides:
getAppropriatePrecisionin classAbstractDataBaseHandler
- Parameters:
columnSize- int- Returns:
- int
getAppropriateScale
public int getAppropriateScale(int columnScale) throws RepException
- Specified by:
getAppropriateScalein classAbstractDataBaseHandler
- Throws:
RepException
makePrimaryPreperedStatement
public java.sql.PreparedStatement makePrimaryPreperedStatement(java.sql.Connection pub_sub_Connection, java.lang.String[] primaryColumns, java.lang.String shadowTable, java.lang.String local_pub_sub_name) throws java.sql.SQLException, RepException
- Specified by:
makePrimaryPreperedStatementin classAbstractDataBaseHandler
- Throws:
java.sql.SQLExceptionRepException
isForeignKeyException
public boolean isForeignKeyException(java.sql.SQLException ex) throws java.sql.SQLException
- Description copied from class:
AbstractDataBaseHandler - To get the foreign key error code to resolve
the Synchronization problem when tables have
parent - child relationship.
- Specified by:
isForeignKeyExceptionin classAbstractDataBaseHandler
- Returns:
- String
- Throws:
java.sql.SQLException
isPrimaryKeyException
public boolean isPrimaryKeyException(java.sql.SQLException ex) throws java.sql.SQLException
- isPrimaryKeyException
- Specified by:
isPrimaryKeyExceptionin classAbstractDataBaseHandler
- Parameters:
ex- SQLException- Returns:
- boolean
- Throws:
java.sql.SQLException
getIgnoredColumns_Table
public java.lang.String getIgnoredColumns_Table()
- Overrides:
getIgnoredColumns_Tablein classAbstractDataBaseHandler
getTrackReplicationTablesUpdation_Table
public java.lang.String getTrackReplicationTablesUpdation_Table()
- Overrides:
getTrackReplicationTablesUpdation_Tablein classAbstractDataBaseHandler
getTrackPrimayKeyUpdation_Table
public java.lang.String getTrackPrimayKeyUpdation_Table()
- Overrides:
getTrackPrimayKeyUpdation_Tablein classAbstractDataBaseHandler
makePrimaryPreperedStatementBackwardTraversing
public java.sql.PreparedStatement makePrimaryPreperedStatementBackwardTraversing(java.lang.String[] primaryColumns, long lastId, java.lang.String local_pub_sub_name, java.lang.String shadowTable) throws java.sql.SQLException, RepException
- Specified by:
makePrimaryPreperedStatementBackwardTraversingin classAbstractDataBaseHandler
- Throws:
java.sql.SQLExceptionRepException
isSchemaSupported
public boolean isSchemaSupported()
- isSchemaSupported
- Specified by:
isSchemaSupportedin classAbstractDataBaseHandler
- Returns:
- boolean
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||


