1 package org.apache.torque.adapter;
2
3 /* ====================================================================
4 * The Apache Software License, Version 1.1
5 *
6 * Copyright (c) 2001-2003 The Apache Software Foundation. All rights
7 * reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in
18 * the documentation and/or other materials provided with the
19 * distribution.
20 *
21 * 3. The end-user documentation included with the redistribution,
22 * if any, must include the following acknowledgment:
23 * "This product includes software developed by the
24 * Apache Software Foundation (http://www.apache.org/)."
25 * Alternately, this acknowledgment may appear in the software itself,
26 * if and wherever such third-party acknowledgments normally appear.
27 *
28 * 4. The names "Apache" and "Apache Software Foundation" and
29 * "Apache Turbine" must not be used to endorse or promote products
30 * derived from this software without prior written permission. For
31 * written permission, please contact apache@apache.org.
32 *
33 * 5. Products derived from this software may not be called "Apache",
34 * "Apache Turbine", nor may "Apache" appear in their name, without
35 * prior written permission of the Apache Software Foundation.
36 *
37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48 * SUCH DAMAGE.
49 * ====================================================================
50 *
51 * This software consists of voluntary contributions made by many
52 * individuals on behalf of the Apache Software Foundation. For more
53 * information on the Apache Software Foundation, please see
54 * <http://www.apache.org/>.
55 */
56
57 import java.sql.Connection;
58 import java.sql.SQLException;
59
60 /***
61 * This is used to connect to PostgresQL databases.
62 *
63 * <a href="http://www.postgresql.org/">http://www.postgresql.org/</a>
64 *
65 * @author <a href="mailto:hakan42@gmx.de">Hakan Tandogan</a>
66 * @version $Id: DBPostgres.java,v 1.16 2003/08/25 21:56:10 mpoeschl Exp $
67 */
68 public class DBPostgres extends DB
69 {
70 /***
71 * Empty constructor.
72 */
73 protected DBPostgres()
74 {
75 }
76
77 /***
78 * This method is used to ignore case.
79 *
80 * @param in The string to transform to upper case.
81 * @return The upper case string.
82 */
83 public String toUpperCase(String in)
84 {
85 String s = new StringBuffer("UPPER(").append(in).append(")").toString();
86 return s;
87 }
88
89 /***
90 * This method is used to ignore case.
91 *
92 * @param in The string whose case to ignore.
93 * @return The string in a case that can be ignored.
94 */
95 public String ignoreCase(String in)
96 {
97 String s = new StringBuffer("UPPER(").append(in).append(")").toString();
98 return s;
99 }
100
101 /***
102 * @see org.apache.torque.adapter.DB#getIDMethodType()
103 */
104 public String getIDMethodType()
105 {
106 return AUTO_INCREMENT;
107 }
108
109 /***
110 * @param name The name of the field (should be of type
111 * <code>String</code>).
112 * @return SQL to retreive the next database key.
113 * @see org.apache.torque.adapter.DB#getIDMethodSQL(Object)
114 */
115 public String getIDMethodSQL(Object name)
116 {
117 return ("select currval('" + name + "')");
118 }
119
120 /***
121 * Locks the specified table.
122 *
123 * @param con The JDBC connection to use.
124 * @param table The name of the table to lock.
125 * @exception SQLException No Statement could be created or executed.
126 */
127 public void lockTable(Connection con, String table) throws SQLException
128 {
129 }
130
131 /***
132 * Unlocks the specified table.
133 *
134 * @param con The JDBC connection to use.
135 * @param table The name of the table to unlock.
136 * @exception SQLException No Statement could be created or executed.
137 */
138 public void unlockTable(Connection con, String table) throws SQLException
139 {
140 }
141
142 /***
143 * This method is used to chek whether the database natively
144 * supports limiting the size of the resultset.
145 *
146 * @return True.
147 */
148 public boolean supportsNativeLimit()
149 {
150 return true;
151 }
152
153 /***
154 * This method is used to chek whether the database natively
155 * supports returning results starting at an offset position other
156 * than 0.
157 *
158 * @return True.
159 */
160 public boolean supportsNativeOffset()
161 {
162 return true;
163 }
164
165 /***
166 * This method is used to chek whether the database supports
167 * limiting the size of the resultset.
168 *
169 * @return LIMIT_STYLE_POSTGRES.
170 */
171 public int getLimitStyle()
172 {
173 return DB.LIMIT_STYLE_POSTGRES;
174 }
175
176 /***
177 * Override the default behavior to associate b with null?
178 *
179 * @see DB#getBooleanString(Boolean)
180 */
181 public String getBooleanString(Boolean b)
182 {
183 return (b == null) ? "0" : (Boolean.TRUE.equals(b) ? "1" : "0");
184 }
185 }
This page was automatically generated by Maven