1*3c5114b8SDamjan Jovanovic /**************************************************************
2*3c5114b8SDamjan Jovanovic  *
3*3c5114b8SDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4*3c5114b8SDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5*3c5114b8SDamjan Jovanovic  * distributed with this work for additional information
6*3c5114b8SDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7*3c5114b8SDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8*3c5114b8SDamjan Jovanovic  * "License"); you may not use this file except in compliance
9*3c5114b8SDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10*3c5114b8SDamjan Jovanovic  *
11*3c5114b8SDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12*3c5114b8SDamjan Jovanovic  *
13*3c5114b8SDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14*3c5114b8SDamjan Jovanovic  * software distributed under the License is distributed on an
15*3c5114b8SDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3c5114b8SDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17*3c5114b8SDamjan Jovanovic  * specific language governing permissions and limitations
18*3c5114b8SDamjan Jovanovic  * under the License.
19*3c5114b8SDamjan Jovanovic  *
20*3c5114b8SDamjan Jovanovic  *************************************************************/
21*3c5114b8SDamjan Jovanovic 
22*3c5114b8SDamjan Jovanovic package com.sun.star.sdbcx.comp.postgresql;
23*3c5114b8SDamjan Jovanovic 
24*3c5114b8SDamjan Jovanovic import com.sun.star.beans.PropertyVetoException;
25*3c5114b8SDamjan Jovanovic import com.sun.star.beans.UnknownPropertyException;
26*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertyChangeListener;
27*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertySet;
28*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertySetInfo;
29*3c5114b8SDamjan Jovanovic import com.sun.star.beans.XVetoableChangeListener;
30*3c5114b8SDamjan Jovanovic import com.sun.star.io.XInputStream;
31*3c5114b8SDamjan Jovanovic import com.sun.star.lang.IllegalArgumentException;
32*3c5114b8SDamjan Jovanovic import com.sun.star.lang.WrappedTargetException;
33*3c5114b8SDamjan Jovanovic import com.sun.star.lib.uno.helper.ComponentBase;
34*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.SQLException;
35*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XArray;
36*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XBlob;
37*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XClob;
38*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XCloseable;
39*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XConnection;
40*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XMultipleResults;
41*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XParameters;
42*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XPreparedBatchExecution;
43*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XPreparedStatement;
44*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XRef;
45*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSet;
46*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSetMetaData;
47*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XResultSetMetaDataSupplier;
48*3c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XWarningsSupplier;
49*3c5114b8SDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
50*3c5114b8SDamjan Jovanovic import com.sun.star.util.Date;
51*3c5114b8SDamjan Jovanovic import com.sun.star.util.DateTime;
52*3c5114b8SDamjan Jovanovic import com.sun.star.util.Time;
53*3c5114b8SDamjan Jovanovic import com.sun.star.util.XCancellable;
54*3c5114b8SDamjan Jovanovic 
55*3c5114b8SDamjan Jovanovic public class PostgresqlPreparedStatement extends ComponentBase
56*3c5114b8SDamjan Jovanovic         implements XPreparedStatement, XCloseable, XPropertySet, XCancellable, XResultSetMetaDataSupplier, XParameters, XPreparedBatchExecution,
57*3c5114b8SDamjan Jovanovic             XWarningsSupplier, XMultipleResults {
58*3c5114b8SDamjan Jovanovic 
59*3c5114b8SDamjan Jovanovic     private XPreparedStatement impl;
60*3c5114b8SDamjan Jovanovic     private XCloseable implCloseable;
61*3c5114b8SDamjan Jovanovic     private XPropertySet implPropertySet;
62*3c5114b8SDamjan Jovanovic     private XCancellable implCancellable;
63*3c5114b8SDamjan Jovanovic     private XResultSetMetaDataSupplier implResultSetMetaDataSupplier;
64*3c5114b8SDamjan Jovanovic     private XParameters implParameters;
65*3c5114b8SDamjan Jovanovic     private XPreparedBatchExecution implPreparedBatchExecution;
66*3c5114b8SDamjan Jovanovic     private XWarningsSupplier implWarningsSupplier;
67*3c5114b8SDamjan Jovanovic     private XMultipleResults implMultipleResults;
68*3c5114b8SDamjan Jovanovic     private XConnection connection;
69*3c5114b8SDamjan Jovanovic 
PostgresqlPreparedStatement(XPreparedStatement impl, XConnection connection)70*3c5114b8SDamjan Jovanovic     public PostgresqlPreparedStatement(XPreparedStatement impl, XConnection connection) {
71*3c5114b8SDamjan Jovanovic         this.impl = impl;
72*3c5114b8SDamjan Jovanovic         this.implCloseable = UnoRuntime.queryInterface(XCloseable.class, impl);
73*3c5114b8SDamjan Jovanovic         this.implPropertySet = UnoRuntime.queryInterface(XPropertySet.class, impl);
74*3c5114b8SDamjan Jovanovic         this.implCancellable = UnoRuntime.queryInterface(XCancellable.class, impl);
75*3c5114b8SDamjan Jovanovic         this.implResultSetMetaDataSupplier = UnoRuntime.queryInterface(XResultSetMetaDataSupplier.class, impl);
76*3c5114b8SDamjan Jovanovic         this.implParameters = UnoRuntime.queryInterface(XParameters.class, impl);
77*3c5114b8SDamjan Jovanovic         this.implPreparedBatchExecution = UnoRuntime.queryInterface(XPreparedBatchExecution.class, impl);
78*3c5114b8SDamjan Jovanovic         this.implWarningsSupplier = UnoRuntime.queryInterface(XWarningsSupplier.class, impl);
79*3c5114b8SDamjan Jovanovic         this.implMultipleResults = UnoRuntime.queryInterface(XMultipleResults.class, impl);
80*3c5114b8SDamjan Jovanovic         this.connection = connection;
81*3c5114b8SDamjan Jovanovic     }
82*3c5114b8SDamjan Jovanovic 
83*3c5114b8SDamjan Jovanovic     // XComponentBase:
84*3c5114b8SDamjan Jovanovic 
85*3c5114b8SDamjan Jovanovic     @Override
postDisposing()86*3c5114b8SDamjan Jovanovic     protected void postDisposing() {
87*3c5114b8SDamjan Jovanovic         try {
88*3c5114b8SDamjan Jovanovic             implCloseable.close();
89*3c5114b8SDamjan Jovanovic         } catch (SQLException sqlException) {
90*3c5114b8SDamjan Jovanovic         }
91*3c5114b8SDamjan Jovanovic     }
92*3c5114b8SDamjan Jovanovic 
93*3c5114b8SDamjan Jovanovic     // XPreparedStatement:
94*3c5114b8SDamjan Jovanovic 
execute()95*3c5114b8SDamjan Jovanovic     public boolean execute() throws SQLException {
96*3c5114b8SDamjan Jovanovic         return impl.execute();
97*3c5114b8SDamjan Jovanovic     }
98*3c5114b8SDamjan Jovanovic 
executeQuery()99*3c5114b8SDamjan Jovanovic     public XResultSet executeQuery() throws SQLException {
100*3c5114b8SDamjan Jovanovic         return new PostgresqlResultSet(impl.executeQuery(), this);
101*3c5114b8SDamjan Jovanovic     }
102*3c5114b8SDamjan Jovanovic 
executeUpdate()103*3c5114b8SDamjan Jovanovic     public int executeUpdate() throws SQLException {
104*3c5114b8SDamjan Jovanovic         return impl.executeUpdate();
105*3c5114b8SDamjan Jovanovic     }
106*3c5114b8SDamjan Jovanovic 
getConnection()107*3c5114b8SDamjan Jovanovic     public XConnection getConnection() throws SQLException {
108*3c5114b8SDamjan Jovanovic         return connection;
109*3c5114b8SDamjan Jovanovic     }
110*3c5114b8SDamjan Jovanovic 
111*3c5114b8SDamjan Jovanovic     // XCloseable:
112*3c5114b8SDamjan Jovanovic 
close()113*3c5114b8SDamjan Jovanovic     public void close() throws SQLException {
114*3c5114b8SDamjan Jovanovic         dispose();
115*3c5114b8SDamjan Jovanovic     }
116*3c5114b8SDamjan Jovanovic 
117*3c5114b8SDamjan Jovanovic     // XPropertySet:
118*3c5114b8SDamjan Jovanovic 
addPropertyChangeListener(String arg0, XPropertyChangeListener arg1)119*3c5114b8SDamjan Jovanovic     public void addPropertyChangeListener(String arg0, XPropertyChangeListener arg1) throws UnknownPropertyException, WrappedTargetException {
120*3c5114b8SDamjan Jovanovic         implPropertySet.addPropertyChangeListener(arg0, arg1);
121*3c5114b8SDamjan Jovanovic     }
122*3c5114b8SDamjan Jovanovic 
addVetoableChangeListener(String arg0, XVetoableChangeListener arg1)123*3c5114b8SDamjan Jovanovic     public void addVetoableChangeListener(String arg0, XVetoableChangeListener arg1) throws UnknownPropertyException, WrappedTargetException {
124*3c5114b8SDamjan Jovanovic         implPropertySet.addVetoableChangeListener(arg0, arg1);
125*3c5114b8SDamjan Jovanovic     }
126*3c5114b8SDamjan Jovanovic 
getPropertySetInfo()127*3c5114b8SDamjan Jovanovic     public XPropertySetInfo getPropertySetInfo() {
128*3c5114b8SDamjan Jovanovic         return implPropertySet.getPropertySetInfo();
129*3c5114b8SDamjan Jovanovic     }
130*3c5114b8SDamjan Jovanovic 
getPropertyValue(String arg0)131*3c5114b8SDamjan Jovanovic     public Object getPropertyValue(String arg0) throws UnknownPropertyException, WrappedTargetException {
132*3c5114b8SDamjan Jovanovic         return implPropertySet.getPropertyValue(arg0);
133*3c5114b8SDamjan Jovanovic     }
134*3c5114b8SDamjan Jovanovic 
removePropertyChangeListener(String arg0, XPropertyChangeListener arg1)135*3c5114b8SDamjan Jovanovic     public void removePropertyChangeListener(String arg0, XPropertyChangeListener arg1) throws UnknownPropertyException, WrappedTargetException {
136*3c5114b8SDamjan Jovanovic         implPropertySet.removePropertyChangeListener(arg0, arg1);
137*3c5114b8SDamjan Jovanovic     }
138*3c5114b8SDamjan Jovanovic 
removeVetoableChangeListener(String arg0, XVetoableChangeListener arg1)139*3c5114b8SDamjan Jovanovic     public void removeVetoableChangeListener(String arg0, XVetoableChangeListener arg1) throws UnknownPropertyException, WrappedTargetException {
140*3c5114b8SDamjan Jovanovic         implPropertySet.removeVetoableChangeListener(arg0, arg1);
141*3c5114b8SDamjan Jovanovic     }
142*3c5114b8SDamjan Jovanovic 
setPropertyValue(String arg0, Object arg1)143*3c5114b8SDamjan Jovanovic     public void setPropertyValue(String arg0, Object arg1)
144*3c5114b8SDamjan Jovanovic             throws UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException {
145*3c5114b8SDamjan Jovanovic         implPropertySet.setPropertyValue(arg0, arg1);
146*3c5114b8SDamjan Jovanovic     }
147*3c5114b8SDamjan Jovanovic 
148*3c5114b8SDamjan Jovanovic     // XCancellable:
149*3c5114b8SDamjan Jovanovic 
cancel()150*3c5114b8SDamjan Jovanovic     public void cancel() {
151*3c5114b8SDamjan Jovanovic         implCancellable.cancel();
152*3c5114b8SDamjan Jovanovic     }
153*3c5114b8SDamjan Jovanovic 
154*3c5114b8SDamjan Jovanovic     // XResultSetMetaDataSupplier:
155*3c5114b8SDamjan Jovanovic 
getMetaData()156*3c5114b8SDamjan Jovanovic     public XResultSetMetaData getMetaData() throws SQLException {
157*3c5114b8SDamjan Jovanovic         return new PostgresqlResultSetMetaData(implResultSetMetaDataSupplier.getMetaData());
158*3c5114b8SDamjan Jovanovic     }
159*3c5114b8SDamjan Jovanovic 
160*3c5114b8SDamjan Jovanovic     // XParameters:
161*3c5114b8SDamjan Jovanovic 
clearParameters()162*3c5114b8SDamjan Jovanovic     public void clearParameters() throws SQLException {
163*3c5114b8SDamjan Jovanovic         implParameters.clearParameters();
164*3c5114b8SDamjan Jovanovic     }
165*3c5114b8SDamjan Jovanovic 
setArray(int arg0, XArray arg1)166*3c5114b8SDamjan Jovanovic     public void setArray(int arg0, XArray arg1) throws SQLException {
167*3c5114b8SDamjan Jovanovic         implParameters.setArray(arg0, arg1);
168*3c5114b8SDamjan Jovanovic     }
169*3c5114b8SDamjan Jovanovic 
setBinaryStream(int arg0, XInputStream arg1, int arg2)170*3c5114b8SDamjan Jovanovic     public void setBinaryStream(int arg0, XInputStream arg1, int arg2) throws SQLException {
171*3c5114b8SDamjan Jovanovic         implParameters.setBinaryStream(arg0, arg1, arg2);
172*3c5114b8SDamjan Jovanovic     }
173*3c5114b8SDamjan Jovanovic 
setBlob(int arg0, XBlob arg1)174*3c5114b8SDamjan Jovanovic     public void setBlob(int arg0, XBlob arg1) throws SQLException {
175*3c5114b8SDamjan Jovanovic         implParameters.setBlob(arg0, arg1);
176*3c5114b8SDamjan Jovanovic     }
177*3c5114b8SDamjan Jovanovic 
setBoolean(int arg0, boolean arg1)178*3c5114b8SDamjan Jovanovic     public void setBoolean(int arg0, boolean arg1) throws SQLException {
179*3c5114b8SDamjan Jovanovic         implParameters.setBoolean(arg0, arg1);
180*3c5114b8SDamjan Jovanovic     }
181*3c5114b8SDamjan Jovanovic 
setByte(int arg0, byte arg1)182*3c5114b8SDamjan Jovanovic     public void setByte(int arg0, byte arg1) throws SQLException {
183*3c5114b8SDamjan Jovanovic         implParameters.setByte(arg0, arg1);
184*3c5114b8SDamjan Jovanovic     }
185*3c5114b8SDamjan Jovanovic 
setBytes(int arg0, byte[] arg1)186*3c5114b8SDamjan Jovanovic     public void setBytes(int arg0, byte[] arg1) throws SQLException {
187*3c5114b8SDamjan Jovanovic         implParameters.setBytes(arg0, arg1);
188*3c5114b8SDamjan Jovanovic     }
189*3c5114b8SDamjan Jovanovic 
setCharacterStream(int arg0, XInputStream arg1, int arg2)190*3c5114b8SDamjan Jovanovic     public void setCharacterStream(int arg0, XInputStream arg1, int arg2) throws SQLException {
191*3c5114b8SDamjan Jovanovic         implParameters.setCharacterStream(arg0, arg1, arg2);
192*3c5114b8SDamjan Jovanovic     }
193*3c5114b8SDamjan Jovanovic 
setClob(int arg0, XClob arg1)194*3c5114b8SDamjan Jovanovic     public void setClob(int arg0, XClob arg1) throws SQLException {
195*3c5114b8SDamjan Jovanovic         implParameters.setClob(arg0, arg1);
196*3c5114b8SDamjan Jovanovic     }
197*3c5114b8SDamjan Jovanovic 
setDate(int arg0, Date arg1)198*3c5114b8SDamjan Jovanovic     public void setDate(int arg0, Date arg1) throws SQLException {
199*3c5114b8SDamjan Jovanovic         implParameters.setDate(arg0, arg1);
200*3c5114b8SDamjan Jovanovic     }
201*3c5114b8SDamjan Jovanovic 
setDouble(int arg0, double arg1)202*3c5114b8SDamjan Jovanovic     public void setDouble(int arg0, double arg1) throws SQLException {
203*3c5114b8SDamjan Jovanovic         implParameters.setDouble(arg0, arg1);
204*3c5114b8SDamjan Jovanovic     }
205*3c5114b8SDamjan Jovanovic 
setFloat(int arg0, float arg1)206*3c5114b8SDamjan Jovanovic     public void setFloat(int arg0, float arg1) throws SQLException {
207*3c5114b8SDamjan Jovanovic         implParameters.setFloat(arg0, arg1);
208*3c5114b8SDamjan Jovanovic     }
209*3c5114b8SDamjan Jovanovic 
setInt(int arg0, int arg1)210*3c5114b8SDamjan Jovanovic     public void setInt(int arg0, int arg1) throws SQLException {
211*3c5114b8SDamjan Jovanovic         implParameters.setInt(arg0, arg1);
212*3c5114b8SDamjan Jovanovic     }
213*3c5114b8SDamjan Jovanovic 
setLong(int arg0, long arg1)214*3c5114b8SDamjan Jovanovic     public void setLong(int arg0, long arg1) throws SQLException {
215*3c5114b8SDamjan Jovanovic         implParameters.setLong(arg0, arg1);
216*3c5114b8SDamjan Jovanovic     }
217*3c5114b8SDamjan Jovanovic 
setNull(int arg0, int arg1)218*3c5114b8SDamjan Jovanovic     public void setNull(int arg0, int arg1) throws SQLException {
219*3c5114b8SDamjan Jovanovic         implParameters.setNull(arg0, arg1);
220*3c5114b8SDamjan Jovanovic     }
221*3c5114b8SDamjan Jovanovic 
setObject(int arg0, Object arg1)222*3c5114b8SDamjan Jovanovic     public void setObject(int arg0, Object arg1) throws SQLException {
223*3c5114b8SDamjan Jovanovic         implParameters.setObject(arg0, arg1);
224*3c5114b8SDamjan Jovanovic     }
225*3c5114b8SDamjan Jovanovic 
setObjectNull(int arg0, int arg1, String arg2)226*3c5114b8SDamjan Jovanovic     public void setObjectNull(int arg0, int arg1, String arg2) throws SQLException {
227*3c5114b8SDamjan Jovanovic         implParameters.setObjectNull(arg0, arg1, arg2);
228*3c5114b8SDamjan Jovanovic     }
229*3c5114b8SDamjan Jovanovic 
setObjectWithInfo(int arg0, Object arg1, int arg2, int arg3)230*3c5114b8SDamjan Jovanovic     public void setObjectWithInfo(int arg0, Object arg1, int arg2, int arg3) throws SQLException {
231*3c5114b8SDamjan Jovanovic         implParameters.setObjectWithInfo(arg0, arg1, arg2, arg3);
232*3c5114b8SDamjan Jovanovic     }
233*3c5114b8SDamjan Jovanovic 
setRef(int arg0, XRef arg1)234*3c5114b8SDamjan Jovanovic     public void setRef(int arg0, XRef arg1) throws SQLException {
235*3c5114b8SDamjan Jovanovic         implParameters.setRef(arg0, arg1);
236*3c5114b8SDamjan Jovanovic     }
237*3c5114b8SDamjan Jovanovic 
setShort(int arg0, short arg1)238*3c5114b8SDamjan Jovanovic     public void setShort(int arg0, short arg1) throws SQLException {
239*3c5114b8SDamjan Jovanovic         implParameters.setShort(arg0, arg1);
240*3c5114b8SDamjan Jovanovic     }
241*3c5114b8SDamjan Jovanovic 
setString(int arg0, String arg1)242*3c5114b8SDamjan Jovanovic     public void setString(int arg0, String arg1) throws SQLException {
243*3c5114b8SDamjan Jovanovic         implParameters.setString(arg0, arg1);
244*3c5114b8SDamjan Jovanovic     }
245*3c5114b8SDamjan Jovanovic 
setTime(int arg0, Time arg1)246*3c5114b8SDamjan Jovanovic     public void setTime(int arg0, Time arg1) throws SQLException {
247*3c5114b8SDamjan Jovanovic         implParameters.setTime(arg0, arg1);
248*3c5114b8SDamjan Jovanovic     }
249*3c5114b8SDamjan Jovanovic 
setTimestamp(int arg0, DateTime arg1)250*3c5114b8SDamjan Jovanovic     public void setTimestamp(int arg0, DateTime arg1) throws SQLException {
251*3c5114b8SDamjan Jovanovic         implParameters.setTimestamp(arg0, arg1);
252*3c5114b8SDamjan Jovanovic     }
253*3c5114b8SDamjan Jovanovic 
254*3c5114b8SDamjan Jovanovic     // XPreparedBatchExecution:
255*3c5114b8SDamjan Jovanovic 
addBatch()256*3c5114b8SDamjan Jovanovic     public void addBatch() throws SQLException {
257*3c5114b8SDamjan Jovanovic         implPreparedBatchExecution.addBatch();
258*3c5114b8SDamjan Jovanovic     }
259*3c5114b8SDamjan Jovanovic 
clearBatch()260*3c5114b8SDamjan Jovanovic     public void clearBatch() throws SQLException {
261*3c5114b8SDamjan Jovanovic         implPreparedBatchExecution.clearBatch();
262*3c5114b8SDamjan Jovanovic     }
263*3c5114b8SDamjan Jovanovic 
executeBatch()264*3c5114b8SDamjan Jovanovic     public int[] executeBatch() throws SQLException {
265*3c5114b8SDamjan Jovanovic         return implPreparedBatchExecution.executeBatch();
266*3c5114b8SDamjan Jovanovic     }
267*3c5114b8SDamjan Jovanovic 
268*3c5114b8SDamjan Jovanovic     // XWarningsSupplier:
269*3c5114b8SDamjan Jovanovic 
clearWarnings()270*3c5114b8SDamjan Jovanovic     public void clearWarnings() throws SQLException {
271*3c5114b8SDamjan Jovanovic         implWarningsSupplier.clearWarnings();
272*3c5114b8SDamjan Jovanovic     }
273*3c5114b8SDamjan Jovanovic 
getWarnings()274*3c5114b8SDamjan Jovanovic     public Object getWarnings() throws SQLException {
275*3c5114b8SDamjan Jovanovic         return implWarningsSupplier.getWarnings();
276*3c5114b8SDamjan Jovanovic     }
277*3c5114b8SDamjan Jovanovic 
278*3c5114b8SDamjan Jovanovic     // XMultipleResults:
279*3c5114b8SDamjan Jovanovic 
getMoreResults()280*3c5114b8SDamjan Jovanovic     public boolean getMoreResults() throws SQLException {
281*3c5114b8SDamjan Jovanovic         return implMultipleResults.getMoreResults();
282*3c5114b8SDamjan Jovanovic     }
283*3c5114b8SDamjan Jovanovic 
getResultSet()284*3c5114b8SDamjan Jovanovic     public XResultSet getResultSet() throws SQLException {
285*3c5114b8SDamjan Jovanovic         return new PostgresqlResultSet(implMultipleResults.getResultSet(), this);
286*3c5114b8SDamjan Jovanovic     }
287*3c5114b8SDamjan Jovanovic 
getUpdateCount()288*3c5114b8SDamjan Jovanovic     public int getUpdateCount() throws SQLException {
289*3c5114b8SDamjan Jovanovic         return implMultipleResults.getUpdateCount();
290*3c5114b8SDamjan Jovanovic     }
291*3c5114b8SDamjan Jovanovic }
292