1 package org.apache.torque.adapter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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 }