JavaDoc


PostgreSQLHandler

org.dbreplicator.replication.DBHandler
Class PostgreSQLHandler

java.lang.Object
  extended by org.dbreplicator.replication.DBHandler.AbstractDataBaseHandler
      extended by 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 org.dbreplicator.replication.DBHandler.AbstractDataBaseHandler
checkSchema, createClientSystemTables, createRemoteSystemTables, CreateSequenceOnLogTable, CreateSequenceOnRepTable, CreateSequenceOnShadowTable, createSubscribedTablesTriggersAndShadowTables, deleteRecordsFromSuperLogTable, dropGenerators, dropPublisherSystemTables, dropSequences, dropSubscriberSystemTables, fireDropQuery, getColumnNamesAndDataTypes, getColumnNamesAndDataTypes1, getLocalServerName, getMinValOfSyncIdTodeleteRecordsFromShadowTable, getScheduleTableName, getShadowTableColumnDataTypeSequence, getShadowTableName, getTableColumns, getvendorName, makeProvisionForLOBDataTypes, saveRepTableData, setColumnPrecisionInTypeInfo, setDefaultSchema, setIgnoredColumns, setLocalServerName, updateDataType
 
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:
createShadowTable in class AbstractDataBaseHandler
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:
createShadowTableTriggers in class AbstractDataBaseHandler
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:
dropTriggersAndShadowTable in class AbstractDataBaseHandler
Throws:
java.sql.SQLException
RepException

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:
RepException
java.sql.SQLException

isDataTypeOptionalSizeSupported

public boolean isDataTypeOptionalSizeSupported(TypeInfo typeInfo)
Specified by:
isDataTypeOptionalSizeSupported in class AbstractDataBaseHandler

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:
setTypeInfo in class AbstractDataBaseHandler
Throws:
RepException
java.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:
getColumnObject in class AbstractDataBaseHandler
Throws:
RepException

createSchemas

public void createSchemas(java.lang.String pubName,
                          java.util.ArrayList schemas)
                   throws java.sql.SQLException,
                          RepException
Overrides:
createSchemas in class AbstractDataBaseHandler
Throws:
java.sql.SQLException
RepException

getPublicationTableName

public java.lang.String getPublicationTableName()
Overrides:
getPublicationTableName in class AbstractDataBaseHandler

getSubscriptionTableName

public java.lang.String getSubscriptionTableName()
Overrides:
getSubscriptionTableName in class AbstractDataBaseHandler

getRepTableName

public java.lang.String getRepTableName()
Overrides:
getRepTableName in class AbstractDataBaseHandler

getLogTableName

public java.lang.String getLogTableName()
Overrides:
getLogTableName in class AbstractDataBaseHandler

getBookMarkTableName

public java.lang.String getBookMarkTableName()
Overrides:
getBookMarkTableName in class AbstractDataBaseHandler

isColumnSizeExceedMaximumSize

public boolean isColumnSizeExceedMaximumSize(TypeInfo typeInfo)
                                      throws java.sql.SQLException,
                                             RepException
Throws:
java.sql.SQLException
RepException

isColumnSizeExceedMaximumSize1

public boolean isColumnSizeExceedMaximumSize1(java.sql.ResultSet rs,
                                              TypeInfo typeInfo)
                                       throws java.sql.SQLException,
                                              RepException
Throws:
java.sql.SQLException
RepException

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:
getAppropriatePrecision in class AbstractDataBaseHandler
Parameters:
columnSize - int
Returns:
int

getAppropriateScale

public int getAppropriateScale(int columnScale)
                        throws RepException
Specified by:
getAppropriateScale in class AbstractDataBaseHandler
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:
makePrimaryPreperedStatement in class AbstractDataBaseHandler
Throws:
java.sql.SQLException
RepException

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:
isForeignKeyException in class AbstractDataBaseHandler
Returns:
String
Throws:
java.sql.SQLException

isPrimaryKeyException

public boolean isPrimaryKeyException(java.sql.SQLException ex)
                              throws java.sql.SQLException
isPrimaryKeyException

Specified by:
isPrimaryKeyException in class AbstractDataBaseHandler
Parameters:
ex - SQLException
Returns:
boolean
Throws:
java.sql.SQLException

getIgnoredColumns_Table

public java.lang.String getIgnoredColumns_Table()
Overrides:
getIgnoredColumns_Table in class AbstractDataBaseHandler

getTrackReplicationTablesUpdation_Table

public java.lang.String getTrackReplicationTablesUpdation_Table()
Overrides:
getTrackReplicationTablesUpdation_Table in class AbstractDataBaseHandler

getTrackPrimayKeyUpdation_Table

public java.lang.String getTrackPrimayKeyUpdation_Table()
Overrides:
getTrackPrimayKeyUpdation_Table in class AbstractDataBaseHandler

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:
makePrimaryPreperedStatementBackwardTraversing in class AbstractDataBaseHandler
Throws:
java.sql.SQLException
RepException

isSchemaSupported

public boolean isSchemaSupported()
isSchemaSupported

Specified by:
isSchemaSupported in class AbstractDataBaseHandler
Returns:
boolean



Powered by Drupal - Theme by Danger4k