|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.continuent.tungsten.replicator.database.AbstractDatabase
com.continuent.tungsten.replicator.database.PostgreSQLDatabase
public class PostgreSQLDatabase
Implements DBMS-specific operations for MySQL.
| Field Summary |
|---|
| Fields inherited from class com.continuent.tungsten.replicator.database.AbstractDatabase |
|---|
autoCommit, connected, dbConn, dbDriver, dbms, dbPassword, dbUri, dbUser, defaultSchema, drivers, privileged |
| Fields inherited from interface com.continuent.tungsten.replicator.database.Database |
|---|
MYSQL, ORACLE, POSTGRESQL, UNKNOWN |
| Constructor Summary | |
|---|---|
PostgreSQLDatabase()
|
|
| Method Summary | |
|---|---|
protected java.lang.String |
columnToTypeString(Column c,
java.lang.String tableType)
Return a properly constructed type specification for the column. |
void |
connect()
Connect to a PostgreSQL database. |
void |
connect(boolean binlog)
Connect to a PostgreSQL database. |
void |
createSchema(java.lang.String schema)
Checks whether the schema exists and, if not, creates it. |
void |
createTable(Table t,
boolean replace)
Creates a table using the supplied table definition. |
void |
dropSchema(java.lang.String schema)
Checks whether the schema exists and, if it does, drops it. |
void |
dropTable(Table table)
Drops an existing table. |
byte[] |
getBlobAsBytes(java.sql.ResultSet resultSet,
int column)
Fetches the given column as a byte[] array. |
java.sql.ResultSet |
getColumnsResultSet(java.sql.DatabaseMetaData md,
java.lang.String schemaName,
java.lang.String tableName)
This function should be implemented in concrete class. |
CsvWriter |
getCsvWriter(java.io.BufferedWriter writer)
Returns a properly configured CsvWriter to generate CSV according to the preferred conventions of this DBMS type. |
java.lang.String |
getDatabaseObjectName(java.lang.String name)
Returns the eventually quoted database object name. |
java.lang.String |
getNowFunction()
getNowFunction returns the database-specific way to get current date and time from the database. |
java.lang.String |
getPlaceHolder(OneRowChange.ColumnSpec col,
java.lang.Object colValue,
java.lang.String typeDesc)
Return a place holder in a prepared statement for a column of type ColumnSpec. |
protected java.sql.ResultSet |
getPrimaryKeyResultSet(java.sql.DatabaseMetaData md,
java.lang.String schemaName,
java.lang.String tableName)
This function should be implemented in concrete class. |
java.util.ArrayList<java.lang.String> |
getSchemas()
Returns schemas in the currently connected database. |
SqlOperationMatcher |
getSqlNameMatcher()
Returns a SQL name matcher for this database type. |
protected java.sql.ResultSet |
getTablesResultSet(java.sql.DatabaseMetaData md,
java.lang.String schemaName,
boolean baseTablesOnly)
This function should be implemented in concrete class. |
java.lang.String |
getTimeDiff(java.lang.String string1,
java.lang.String string2)
getTimeDiff returns the database-specific way of subtracting two "dates" and return the result in seconds complete with space for the two bind variables. |
java.lang.String |
getUseSchemaQuery(java.lang.String schema)
Returns a query that can be used to set the schema. |
boolean |
nullsBoundDifferently(OneRowChange.ColumnSpec col)
Return TRUE IFF NULL values are bound differently in SQL statement from non null values for the given column type. |
boolean |
nullsEverBoundDifferently()
return true IFF nulls are sometimes treated differently in nullsBoundDifferently() as non nulls. |
boolean |
supportsCreateDropSchema()
Returns false by default as only some database types allow schema to be created dynamically. |
boolean |
supportsReplace()
Returns true if the implementation supports a SQL REPLACE command. |
boolean |
supportsSessionVariables()
Before using session variables in PostgreSQL one needs to define them in postgresql.conf |
boolean |
supportsUseDefaultSchema()
Returns false by default as only some database types allow schema to change. |
protected boolean |
tableExists(Table t)
Checks whether the given table exists in the currently connected database. |
void |
useDefaultSchema(java.lang.String schema)
Changes the default schema to the named schema. |
| Methods inherited from class com.continuent.tungsten.replicator.database.AbstractDatabase |
|---|
close, commit, consistencyCheck, consistencyCheck, controlSessionLevelLogging, createStatement, createTable, createTable, createTable, createUser, delete, disconnect, dropTungstenCatalog, dropUser, execute, executeUpdate, findTable, findTable, findTable, getConnection, getControlTimestampQuery, getDatabaseMetaData, getReservedWords, getSessionVariable, getTables, getType, insert, isPrivileged, javaSQLTypeToNativeType, kill, listSessions, nativeTypeToJavaSQLType, prepareOptionSetStatement, prepareStatement, replace, rollback, setAutoCommit, setPassword, setPrivileged, setSessionVariable, setUrl, setUser, supportsControlSessionLevelLogging, supportsControlTimestamp, supportsNativeSlaveSync, supportsUserManagement, syncNativeSlave, update |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PostgreSQLDatabase()
throws java.sql.SQLException
java.sql.SQLException| Method Detail |
|---|
public SqlOperationMatcher getSqlNameMatcher()
throws ReplicatorException
getSqlNameMatcher in interface DatabasegetSqlNameMatcher in class AbstractDatabaseReplicatorExceptionAbstractDatabase.getSqlNameMatcher()
protected java.lang.String columnToTypeString(Column c,
java.lang.String tableType)
AbstractDatabase
columnToTypeString in class AbstractDatabasec - Column for which specification is required
public void connect()
throws java.sql.SQLException
connect in interface Databaseconnect in class AbstractDatabasejava.sql.SQLExceptionAbstractDatabase.connect()
public void connect(boolean binlog)
throws java.sql.SQLException
connect in interface Databaseconnect in class AbstractDatabasebinlog - log connection updates.
java.sql.SQLExceptionAbstractDatabase.connect(boolean)public boolean supportsReplace()
Database
supportsReplace in interface DatabasesupportsReplace in class AbstractDatabasepublic boolean supportsUseDefaultSchema()
AbstractDatabase
supportsUseDefaultSchema in interface DatabasesupportsUseDefaultSchema in class AbstractDatabaseDatabase.supportsUseDefaultSchema()
public void useDefaultSchema(java.lang.String schema)
throws java.sql.SQLException
AbstractDatabase
useDefaultSchema in interface DatabaseuseDefaultSchema in class AbstractDatabasejava.sql.SQLExceptionDatabase.useDefaultSchema(java.lang.String)public java.lang.String getUseSchemaQuery(java.lang.String schema)
AbstractDatabase
getUseSchemaQuery in interface DatabasegetUseSchemaQuery in class AbstractDatabaseDatabase.getUseSchemaQuery(java.lang.String)public boolean supportsCreateDropSchema()
AbstractDatabase
supportsCreateDropSchema in interface DatabasesupportsCreateDropSchema in class AbstractDatabaseDatabase.supportsCreateDropSchema()
public void createSchema(java.lang.String schema)
throws java.sql.SQLException
createSchema in interface DatabasecreateSchema in class AbstractDatabasejava.sql.SQLExceptionAbstractDatabase.createSchema(java.lang.String)
public void dropSchema(java.lang.String schema)
throws java.sql.SQLException
dropSchema in interface DatabasedropSchema in class AbstractDatabasejava.sql.SQLExceptionAbstractDatabase.dropSchema(java.lang.String)
protected boolean tableExists(Table t)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void dropTable(Table table)
dropTable in interface DatabasedropTable in class AbstractDatabaseDatabase.dropTable(com.continuent.tungsten.replicator.database.Table)
public void createTable(Table t,
boolean replace)
throws java.sql.SQLException
createTable in interface DatabasecreateTable in class AbstractDatabaset - Table specificationreplace - If true, replace an existing table
java.sql.SQLExceptionAbstractDatabase.createTable(com.continuent.tungsten.replicator.database.Table,
boolean, java.lang.String)public boolean supportsSessionVariables()
supportsSessionVariables in interface DatabasesupportsSessionVariables in class AbstractDatabaseDatabase.supportsSessionVariables()
public java.util.ArrayList<java.lang.String> getSchemas()
throws java.sql.SQLException
java.sql.SQLExceptionDatabase.getSchemas()
public java.sql.ResultSet getColumnsResultSet(java.sql.DatabaseMetaData md,
java.lang.String schemaName,
java.lang.String tableName)
throws java.sql.SQLException
AbstractDatabase
getColumnsResultSet in interface DatabasegetColumnsResultSet in class AbstractDatabasemd - DatabaseMetaData objectschemaName - schema nametableName - table name
java.sql.SQLException
protected java.sql.ResultSet getPrimaryKeyResultSet(java.sql.DatabaseMetaData md,
java.lang.String schemaName,
java.lang.String tableName)
throws java.sql.SQLException
AbstractDatabase
getPrimaryKeyResultSet in class AbstractDatabasemd - DatabaseMetaData objectschemaName - schema nametableName - table name
java.sql.SQLException
protected java.sql.ResultSet getTablesResultSet(java.sql.DatabaseMetaData md,
java.lang.String schemaName,
boolean baseTablesOnly)
throws java.sql.SQLException
AbstractDatabase
getTablesResultSet in class AbstractDatabasemd - DatabaseMetaData objectschemaName - schema namebaseTablesOnly - If true, return only base tables, not catalogs or
views
java.sql.SQLException
public java.lang.String getTimeDiff(java.lang.String string1,
java.lang.String string2)
public java.lang.String getNowFunction()
Database
public java.lang.String getPlaceHolder(OneRowChange.ColumnSpec col,
java.lang.Object colValue,
java.lang.String typeDesc)
Database
getPlaceHolder in interface DatabasegetPlaceHolder in class AbstractDatabasepublic boolean nullsBoundDifferently(OneRowChange.ColumnSpec col)
Database
nullsBoundDifferently in interface DatabasenullsBoundDifferently in class AbstractDatabasepublic boolean nullsEverBoundDifferently()
Database
nullsEverBoundDifferently in interface DatabasenullsEverBoundDifferently in class AbstractDatabase
public byte[] getBlobAsBytes(java.sql.ResultSet resultSet,
int column)
throws java.sql.SQLException
getBlobAsBytes in interface DatabasegetBlobAsBytes in class AbstractDatabaseresultSet - ResultSet which has this blob column.column - Index of the column to fetch value from.
java.sql.SQLException - As this method is operating on ResultSet, it might
throw a SQLException.Database.getBlobAsBytes(ResultSet,
int)public java.lang.String getDatabaseObjectName(java.lang.String name)
getDatabaseObjectName in interface DatabasegetDatabaseObjectName in class AbstractDatabasename - unquoted database object name
AbstractDatabase.getDatabaseObjectName(java.lang.String)public CsvWriter getCsvWriter(java.io.BufferedWriter writer)
writer - A buffered writer to receive CSV output
Database.getCsvWriter(java.io.BufferedWriter)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||