org.apache.torque.adapter
Class PostgresAdapter

java.lang.Object
  extended by org.apache.torque.adapter.AbstractAdapter
      extended by org.apache.torque.adapter.PostgresAdapter
All Implemented Interfaces:
Serializable, Adapter

public class PostgresAdapter
extends AbstractAdapter

This is used to connect to PostgresQL databases. http://www.postgresql.org/

Version:
$Id: PostgresAdapter.java 1355228 2012-06-29 03:38:08Z tfischer $
Author:
Hakan Tandogan, Henning P. Schmiedehausen
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.apache.torque.adapter.Adapter
ADAPTER_KEY, AUTODETECT_ADAPTER, DRIVER_KEY
 
Constructor Summary
protected PostgresAdapter()
          Empty constructor.
 
Method Summary
 void generateLimits(Query query, long offset, int limit)
          Generate a LIMIT limit OFFSET offset clause if offset > 0 or an LIMIT limit clause if limit is > 0 and offset is 0.
 String getIDMethodSQL(Object name)
          Returns SQL used to get the most recently inserted primary key.
 IDMethod getIDMethodType()
          Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.
 String ignoreCase(String in)
          This method is used to ignore case.
 void lockTable(Connection con, String table)
          Locks the specified table.
 boolean supportsNativeLimit()
          Return true for PostgreSQL
 boolean supportsNativeOffset()
          Return true for PostgreSQL
 String toUpperCase(String in)
          This method is used to ignore case.
 void unlockTable(Connection con, String table)
          Unlocks the specified table.
 boolean useIlike()
          Whether ILIKE should be used for case insensitive like clauses.
 
Methods inherited from class org.apache.torque.adapter.AbstractAdapter
escapeText, getStringDelimiter, getUpdateLockClause, ignoreCaseInOrderBy, useEscapeClauseForLike
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PostgresAdapter

protected PostgresAdapter()
Empty constructor.

Method Detail

toUpperCase

public String toUpperCase(String in)
This method is used to ignore case.

Specified by:
toUpperCase in interface Adapter
Specified by:
toUpperCase in class AbstractAdapter
Parameters:
in - The string to transform to upper case.
Returns:
The upper case string.

ignoreCase

public String ignoreCase(String in)
This method is used to ignore case.

Specified by:
ignoreCase in interface Adapter
Specified by:
ignoreCase in class AbstractAdapter
Parameters:
in - The string whose case to ignore.
Returns:
The string in a case that can be ignored.

getIDMethodType

public IDMethod getIDMethodType()
Description copied from class: AbstractAdapter
Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.

Specified by:
getIDMethodType in interface Adapter
Specified by:
getIDMethodType in class AbstractAdapter
Returns:
IDMethod constant
See Also:
Adapter.getIDMethodType()

getIDMethodSQL

public String getIDMethodSQL(Object name)
Description copied from class: AbstractAdapter
Returns SQL used to get the most recently inserted primary key. Databases which have no support for this return null.

Specified by:
getIDMethodSQL in interface Adapter
Specified by:
getIDMethodSQL in class AbstractAdapter
Parameters:
name - The name of the field (should be of type String).
Returns:
SQL to retreive the next database key.
See Also:
Adapter.getIDMethodSQL(Object)

lockTable

public void lockTable(Connection con,
                      String table)
               throws SQLException
Locks the specified table.

Specified by:
lockTable in interface Adapter
Specified by:
lockTable in class AbstractAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to lock.
Throws:
SQLException - No Statement could be created or executed.

unlockTable

public void unlockTable(Connection con,
                        String table)
                 throws SQLException
Unlocks the specified table.

Specified by:
unlockTable in interface Adapter
Specified by:
unlockTable in class AbstractAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to unlock.
Throws:
SQLException - No Statement could be created or executed.

supportsNativeLimit

public boolean supportsNativeLimit()
Return true for PostgreSQL

Specified by:
supportsNativeLimit in interface Adapter
Overrides:
supportsNativeLimit in class AbstractAdapter
Returns:
true if the database natively supports limiting the size of the resultset.
See Also:
AbstractAdapter.supportsNativeLimit()

supportsNativeOffset

public boolean supportsNativeOffset()
Return true for PostgreSQL

Specified by:
supportsNativeOffset in interface Adapter
Overrides:
supportsNativeOffset in class AbstractAdapter
Returns:
true if the database natively supports returning results starting at an offset position other than 0.
See Also:
AbstractAdapter.supportsNativeOffset()

generateLimits

public void generateLimits(Query query,
                           long offset,
                           int limit)
Generate a LIMIT limit OFFSET offset clause if offset > 0 or an LIMIT limit clause if limit is > 0 and offset is 0.

Specified by:
generateLimits in interface Adapter
Overrides:
generateLimits in class AbstractAdapter
Parameters:
query - The query to modify
offset - the offset Value
limit - the limit Value

useIlike

public boolean useIlike()
Whether ILIKE should be used for case insensitive like clauses. As postgres uses ILIKE, this mimplementation returns true.

Specified by:
useIlike in interface Adapter
Overrides:
useIlike in class AbstractAdapter
Returns:
true if ilike should be used for case insensitive likes, false if ignoreCase should be applied to the compared strings.


Copyright © 2000-2013 The Apache Software Foundation. All Rights Reserved.