com.continuent.tungsten.replicator.database
Class MySQLDrizzleDatabase

java.lang.Object
  extended by com.continuent.tungsten.replicator.database.AbstractDatabase
      extended by com.continuent.tungsten.replicator.database.MySQLDatabase
          extended by com.continuent.tungsten.replicator.database.MySQLDrizzleDatabase
All Implemented Interfaces:
Database

public class MySQLDrizzleDatabase
extends MySQLDatabase

Version:
1.0
Author:
Stephane Giron

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
MySQLDrizzleDatabase()
           
 
Method Summary
 java.sql.ResultSet getColumnsResultSet(java.sql.DatabaseMetaData md, java.lang.String schemaName, java.lang.String tableName)
          This function should be implemented in concrete class.
 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.
protected  java.sql.ResultSet getTablesResultSet(java.sql.DatabaseMetaData md, java.lang.String schemaName, boolean baseTablesOnly)
          This function should be implemented in concrete class.
 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.
 
Methods inherited from class com.continuent.tungsten.replicator.database.MySQLDatabase
columnToTypeString, connect, connect, controlSessionLevelLogging, createSchema, createTable, createTable, createUser, dropSchema, dropUser, getControlTimestampQuery, getCsvWriter, getDatabaseObjectName, getNowFunction, getSchemas, getSessionVariable, getSqlNameMatcher, getTimeDiff, getUseSchemaQuery, kill, listSessions, prepareOptionSetStatement, setSessionVariable, supportsCharset, supportsControlSessionLevelLogging, supportsControlTimestamp, supportsCreateDropSchema, supportsNativeSlaveSync, supportsNotNull, supportsPrimaryKeys, supportsReplace, supportsSessionVariables, supportsUseDefaultSchema, supportsUserManagement, syncNativeSlave, useDefaultSchema
 
Methods inherited from class com.continuent.tungsten.replicator.database.AbstractDatabase
close, commit, consistencyCheck, consistencyCheck, createStatement, createTable, createTable, delete, disconnect, dropTable, dropTungstenCatalog, execute, executeUpdate, findTable, findTable, findTable, getBlobAsBytes, getConnection, getDatabaseMetaData, getReservedWords, getTables, getType, insert, isPrivileged, javaSQLTypeToNativeType, nativeTypeToJavaSQLType, prepareStatement, replace, rollback, setAutoCommit, setPassword, setPrivileged, setUrl, setUser, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MySQLDrizzleDatabase

public MySQLDrizzleDatabase()
                     throws java.sql.SQLException
Throws:
java.sql.SQLException
Method Detail

getColumnsResultSet

public java.sql.ResultSet getColumnsResultSet(java.sql.DatabaseMetaData md,
                                              java.lang.String schemaName,
                                              java.lang.String tableName)
                                       throws java.sql.SQLException
This function should be implemented in concrete class.

Specified by:
getColumnsResultSet in interface Database
Overrides:
getColumnsResultSet in class MySQLDatabase
Parameters:
md - DatabaseMetaData object
schemaName - schema name
tableName - table name
Returns:
ResultSet as produced by DatabaseMetaData.getColumns() for a given schema and table
Throws:
java.sql.SQLException
See Also:
MySQLDatabase.getColumnsResultSet(java.sql.DatabaseMetaData, java.lang.String, java.lang.String)

getTablesResultSet

protected java.sql.ResultSet getTablesResultSet(java.sql.DatabaseMetaData md,
                                                java.lang.String schemaName,
                                                boolean baseTablesOnly)
                                         throws java.sql.SQLException
This function should be implemented in concrete class.

Overrides:
getTablesResultSet in class MySQLDatabase
Parameters:
md - DatabaseMetaData object
schemaName - schema name
baseTablesOnly - If true, return only base tables, not catalogs or views
Returns:
ResultSet as produced by DatabaseMetaData.getTables() for a given schema
Throws:
java.sql.SQLException
See Also:
MySQLDatabase.getTablesResultSet(java.sql.DatabaseMetaData, java.lang.String, boolean)

getPrimaryKeyResultSet

protected java.sql.ResultSet getPrimaryKeyResultSet(java.sql.DatabaseMetaData md,
                                                    java.lang.String schemaName,
                                                    java.lang.String tableName)
                                             throws java.sql.SQLException
Description copied from class: AbstractDatabase
This function should be implemented in concrete class.

Overrides:
getPrimaryKeyResultSet in class MySQLDatabase
Parameters:
md - DatabaseMetaData object
schemaName - schema name
tableName - table name
Returns:
ResultSet as produced by DatabaseMetaData.getPrimaryKeys() for a given schema and table
Throws:
java.sql.SQLException

getPlaceHolder

public java.lang.String getPlaceHolder(OneRowChange.ColumnSpec col,
                                       java.lang.Object colValue,
                                       java.lang.String typeDesc)
Description copied from interface: Database
Return a place holder in a prepared statement for a column of type ColumnSpec. Typically "?" as is INSERT INTO FOO VALUES(?)

Specified by:
getPlaceHolder in interface Database
Overrides:
getPlaceHolder in class MySQLDatabase

nullsBoundDifferently

public boolean nullsBoundDifferently(OneRowChange.ColumnSpec col)
Description copied from interface: Database
Return TRUE IFF NULL values are bound differently in SQL statement from non null values for the given column type. For example, in Oracle, the datatype XML must look like "XMLTYPE(?)" in most SQL statements, but in the case of a NULL value, it would look simply like "?".

Specified by:
nullsBoundDifferently in interface Database
Overrides:
nullsBoundDifferently in class MySQLDatabase

nullsEverBoundDifferently

public boolean nullsEverBoundDifferently()
Description copied from interface: Database
return true IFF nulls are sometimes treated differently in nullsBoundDifferently() as non nulls.

Specified by:
nullsEverBoundDifferently in interface Database
Overrides:
nullsEverBoundDifferently in class MySQLDatabase