/*
* Copyright (c) 2003, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.core;
import org.postgresql.
PGStatement;
import java.sql.
ResultSet;
import java.sql.
SQLException;
import java.sql.
Statement;
import java.util.
List;
/**
* Driver-internal statement interface. Application code should not use this interface.
*/
public interface
BaseStatement extends
PGStatement,
Statement {
/**
* Create a synthetic resultset from data provided by the driver.
*
* @param fields the column metadata for the resultset
* @param tuples the resultset data
* @return the new ResultSet
* @throws SQLException if something goes wrong
*/
ResultSet createDriverResultSet(
Field[]
fields,
List<byte[][]>
tuples) throws
SQLException;
/**
* Create a resultset from data retrieved from the server.
*
* @param originalQuery the query that generated this resultset; used when dealing with updateable
* resultsets
* @param fields the column metadata for the resultset
* @param tuples the resultset data
* @param cursor the cursor to use to retrieve more data from the server; if null, no additional
* data is present.
* @return the new ResultSet
* @throws SQLException if something goes wrong
*/
ResultSet createResultSet(
Query originalQuery,
Field[]
fields,
List<byte[][]>
tuples,
ResultCursor cursor) throws
SQLException;
/**
* Execute a query, passing additional query flags.
*
* @param p_sql the query to execute (JDBC-style query)
* @param flags additional {@link QueryExecutor} flags for execution; these are bitwise-ORed into
* the default flags.
* @return true if there is a result set
* @throws SQLException if something goes wrong.
*/
boolean
executeWithFlags(
String p_sql, int
flags) throws
SQLException;
/**
* Execute a query, passing additional query flags.
*
* @param cachedQuery the query to execute (native to PostgreSQL)
* @param flags additional {@link QueryExecutor} flags for execution; these are bitwise-ORed into
* the default flags.
* @return true if there is a result set
* @throws SQLException if something goes wrong.
*/
boolean
executeWithFlags(
CachedQuery cachedQuery, int
flags) throws
SQLException;
/**
* Execute a prepared query, passing additional query flags.
*
* @param flags additional {@link QueryExecutor} flags for execution; these are bitwise-ORed into
* the default flags.
* @return true if there is a result set
* @throws SQLException if something goes wrong.
*/
boolean
executeWithFlags(int
flags) throws
SQLException;
}