You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Sunitha Kambhampati <ks...@gmail.com> on 2006/07/13 00:51:21 UTC
Re: svn commit: r421435 - in /db/derby/code/trunk/java: drda/org/apache/derby/impl/drda/
engine/org/apache/derby/iapi/jdbc/ engine/org/apache/derby/impl/jdbc/
Thanks David for the commit. I think you forgot to add the engine
interfaces. maybe missed a svn add ?
Thanks
Sunitha.
davidvc@apache.org wrote:
>Author: davidvc
>Date: Wed Jul 12 15:05:50 2006
>New Revision: 421435
>
>URL: http://svn.apache.org/viewvc?rev=421435&view=rev
>Log:
>DERBY-1015: Define interface between network server and engine through
>Java interfaces. Contributed by Sunitha Kambhampati. Passes
>derbynetclientmats.
>
>
>Modified:
> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
> db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java
> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java
> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
>
>Modified: db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
>URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java?rev=421435&r1=421434&r2=421435&view=diff
>==============================================================================
>--- db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java (original)
>+++ db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java Wed Jul 12 15:05:50 2006
>@@ -56,7 +56,7 @@
> import org.apache.derby.iapi.services.sanity.SanityManager;
> import org.apache.derby.iapi.services.stream.HeaderPrintWriter;
> import org.apache.derby.iapi.tools.i18n.LocalizedResource;
>-import org.apache.derby.impl.jdbc.EmbedParameterSetMetaData;
>+import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
> import org.apache.derby.impl.jdbc.EmbedSQLException;
> import org.apache.derby.impl.jdbc.Util;
>
>@@ -3948,7 +3948,7 @@
> String strVal;
> PreparedStatement ps = stmt.getPreparedStatement();
> int codePoint;
>- EmbedParameterSetMetaData pmeta = null;
>+ EngineParameterMetaData pmeta = null;
> Vector paramDrdaTypes = new Vector();
> Vector paramLens = new Vector();
> ArrayList paramExtPositions = null;
>@@ -4095,7 +4095,7 @@
> * @throws SQLException
> */
> private ArrayList readAndSetParams(int i, DRDAStatement stmt, int
>- drdaType, EmbedParameterSetMetaData pmeta,
>+ drdaType, EngineParameterMetaData pmeta,
> ArrayList paramExtPositions,
> int paramLenNumBytes)
> throws DRDAProtocolException, SQLException
>@@ -5804,7 +5804,7 @@
> {
> PreparedStatement ps = stmt.getPreparedStatement();
> ResultSetMetaData rsmeta = ps.getMetaData();
>- EmbedParameterSetMetaData pmeta = stmt.getParameterMetaData();
>+ EngineParameterMetaData pmeta = stmt.getParameterMetaData();
> int numElems = 0;
> if (e == null || e instanceof SQLWarning)
> {
>@@ -5856,7 +5856,7 @@
>
> ResultSet rs = null;
> ResultSetMetaData rsmeta = null;
>- EmbedParameterSetMetaData pmeta = null;
>+ EngineParameterMetaData pmeta = null;
> if (!stmt.needsToSendParamData)
> rs = stmt.getResultSet();
> if (rs == null) // this is a CallableStatement, use parameter meta data
>@@ -5952,7 +5952,7 @@
> * @throws SQLException
> */
> private void writeSQLDTAGRP(DRDAStatement stmt, ResultSetMetaData rsmeta,
>- EmbedParameterSetMetaData pmeta,
>+ EngineParameterMetaData pmeta,
> int colStart, int colEnd, boolean first)
> throws DRDAProtocolException, SQLException
> {
>@@ -6695,7 +6695,7 @@
> * @throws DRDAProtocolException
> * @throws SQLException
> */
>- private void writeSQLDAGRP(ResultSetMetaData rsmeta, EmbedParameterSetMetaData pmeta, int elemNum, boolean rtnOutput)
>+ private void writeSQLDAGRP(ResultSetMetaData rsmeta, EngineParameterMetaData pmeta, int elemNum, boolean rtnOutput)
> throws DRDAProtocolException, SQLException
> {
> //jdbc uses offset of 1
>@@ -6831,14 +6831,14 @@
> }
>
>
>- private void writeSQLUDTGRP(ResultSetMetaData rsmeta, EmbedParameterSetMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>+ private void writeSQLUDTGRP(ResultSetMetaData rsmeta, EngineParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
> throws DRDAProtocolException,SQLException
> {
> writer.writeByte(CodePoint.NULLDATA);
>
> }
>
>- private void writeSQLDOPTGRP(ResultSetMetaData rsmeta, EmbedParameterSetMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>+ private void writeSQLDOPTGRP(ResultSetMetaData rsmeta, EngineParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
> throws DRDAProtocolException,SQLException
> {
>
>@@ -6858,7 +6858,7 @@
> }
>
>
>- private void writeSQLDXGRP(ResultSetMetaData rsmeta, EmbedParameterSetMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>+ private void writeSQLDXGRP(ResultSetMetaData rsmeta, EngineParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
> throws DRDAProtocolException,SQLException
> {
> // Null indicator indicates we have data
>
>Modified: db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
>URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java?rev=421435&r1=421434&r2=421435&view=diff
>==============================================================================
>--- db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java (original)
>+++ db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java Wed Jul 12 15:05:50 2006
>@@ -39,10 +39,11 @@
> import org.apache.derby.iapi.jdbc.BrokeredPreparedStatement;
> import org.apache.derby.iapi.jdbc.EngineConnection;
> import org.apache.derby.iapi.jdbc.EngineStatement;
>+import org.apache.derby.iapi.jdbc.EnginePreparedStatement;
>+import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
> import org.apache.derby.iapi.reference.JDBC30Translation;
> import org.apache.derby.iapi.sql.execute.ExecutionContext;
> import org.apache.derby.iapi.util.StringUtil;
>-import org.apache.derby.impl.jdbc.EmbedParameterSetMetaData;
> import org.apache.derby.impl.jdbc.Util;
>
> /**
>@@ -81,7 +82,7 @@
> protected byte [] rslsetflg; // Result Set Flags
> protected int maxrslcnt; // Maximum Result set count
> protected PreparedStatement ps; // Prepared statement
>- protected EmbedParameterSetMetaData stmtPmeta; // param metadata
>+ protected EngineParameterMetaData stmtPmeta; // param metadata
> protected boolean isCall;
> protected String procName; // callable statement's method name
> private int[] outputTypes; // jdbc type for output parameter or NOT_OUTPUT_PARAM
>@@ -537,11 +538,7 @@
> */
> protected PreparedStatement getPreparedStatement() throws SQLException
> {
>- if (ps instanceof BrokeredPreparedStatement)
>- return (PreparedStatement)(
>- ((BrokeredPreparedStatement) ps).getStatement());
>- else
>- return ps;
>+ return ps;
> }
>
>
>@@ -1153,7 +1150,7 @@
> {
> if (ps != null && ps instanceof CallableStatement)
> {
>- EmbedParameterSetMetaData pmeta = getParameterMetaData();
>+ EngineParameterMetaData pmeta = getParameterMetaData();
>
> return Math.min(pmeta.getPrecision(index),
> FdocaConstants.NUMERIC_MAX_PRECISION);
>@@ -1174,7 +1171,7 @@
> {
> if (ps != null && ps instanceof CallableStatement)
> {
>- EmbedParameterSetMetaData pmeta = getParameterMetaData();
>+ EngineParameterMetaData pmeta = getParameterMetaData();
> return Math.min(pmeta.getScale(index),FdocaConstants.NUMERIC_MAX_PRECISION);
> }
> else
>@@ -1324,7 +1321,7 @@
>
> private void setupCallableStatementParams(CallableStatement cs) throws SQLException
> {
>- EmbedParameterSetMetaData pmeta = getParameterMetaData();
>+ EngineParameterMetaData pmeta = getParameterMetaData();
> int numElems = pmeta.getParameterCount();
>
> for ( int i = 0; i < numElems; i ++)
>@@ -1555,31 +1552,21 @@
>
>
> /**
>- * Get parameter metadata from EmbedPreparedStatement or
>- * BrokeredPreparedStatement. We use reflection because we don't know which
>- * we have.
>- *
>- * @return EmbedParameterSetMetaData for the prepared statement.
>+ * Retrieve the ParameterMetaData for the prepared statement.
>+ * To do so, use the engine defined interfaces:
>+ * @see org.apache.derby.iapi.jdbc.EnginePreparedStatement
>+ * @see org.apache.derby.iapi.jdbc.EngineParameterMetaData
>+ * @return EngineParameterMetaData for the prepared statement.
> * Note: there is no separate BrokeredParameterSetMetaData.
> */
>- protected EmbedParameterSetMetaData getParameterMetaData() throws SQLException
>+ protected EngineParameterMetaData getParameterMetaData() throws SQLException
> {
> if (stmtPmeta != null)
> return stmtPmeta;
>
>- EmbedParameterSetMetaData pmeta = null;
>- Class[] getParameterMetaDataParam = {};
>- try {
>- Method sh =
>- getPreparedStatement().getClass().getMethod("getEmbedParameterSetMetaData", getParameterMetaDataParam);
>- pmeta = (EmbedParameterSetMetaData)
>- sh.invoke(getPreparedStatement(),null);
>- stmtPmeta = pmeta;
>- }
>- catch (Exception e) {
>- handleReflectionException(e);
>- }
>- return stmtPmeta;
>+ stmtPmeta = ((EnginePreparedStatement)ps).getEmbedParameterSetMetaData();
>+
>+ return stmtPmeta;
> }
>
> /**
>
>Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java
>URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java?rev=421435&r1=421434&r2=421435&view=diff
>==============================================================================
>--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java (original)
>+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java Wed Jul 12 15:05:50 2006
>@@ -32,7 +32,7 @@
> obtained through the BrokeredStatementControl getRealPreparedStatement method.
> */
> public class BrokeredPreparedStatement extends BrokeredStatement
>- implements PreparedStatement
>+ implements EnginePreparedStatement
> {
>
> /**
>@@ -46,6 +46,21 @@
> this.sql = sql;
> }
>
>+ /**
>+ * Imitate the getParameterMetaData() function in JDBC 3.0
>+ *
>+ * Retrieves the number, types and properties of this PreparedStatement
>+ * object's parameters.
>+ *
>+ * @return a EngineParameterMetaData object that contains information about the
>+ * number, types and properties of this PreparedStatement object's parameters.
>+ * @exception SQLException if a database access error occurs
>+ */
>+ public EngineParameterMetaData getEmbedParameterSetMetaData()
>+ throws SQLException
>+ {
>+ return ((EnginePreparedStatement)getPreparedStatement()).getEmbedParameterSetMetaData();
>+ }
> /**
> * A prepared SQL query is executed and its ResultSet is returned.
> *
>
>Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java
>URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java?rev=421435&r1=421434&r2=421435&view=diff
>==============================================================================
>--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java (original)
>+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java Wed Jul 12 15:05:50 2006
>@@ -26,6 +26,7 @@
> import org.apache.derby.iapi.types.DataTypeUtilities;
> import org.apache.derby.iapi.reference.JDBC30Translation;
> import org.apache.derby.iapi.reference.SQLState;
>+import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
>
> import java.sql.SQLException;
> import java.sql.Types;
>@@ -37,13 +38,12 @@
> * It provides the parameter meta data for callable & prepared statements.
> * The subclass in Local30 actually implements ParameterMetaData interface.
> *
>- * Our middle-tier servers or tools (eg. drda network server) can use it this way:
>- * import org.apache.derby.impl.jdbc.EmbedPreparedStatement;
>- * import org.apache.derby.impl.jdbc.EmbedParameterSetMetaData;
>- *
>- * EmbedParameterSetMetaData pmeta = ((EmbedPreparedStatement) ps).getEmbedParameterSetMetaData();
>+ * For use of ParameterMetaData functionality in network server, please do not use
>+ * this class directly. Instead use the method available on EnginePreparedStatement
>+ * @see org.apache.derby.iapi.jdbc.EngineParameterMetaData
>+ * @see org.apache.derby.iapi.jdbc.EnginePreparedStatement
> */
>-public class EmbedParameterSetMetaData
>+public class EmbedParameterSetMetaData implements EngineParameterMetaData
> {
>
> private final ParameterValueSet pvs;
>
>Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
>URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java?rev=421435&r1=421434&r2=421435&view=diff
>==============================================================================
>--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java (original)
>+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java Wed Jul 12 15:05:50 2006
>@@ -70,6 +70,8 @@
> import java.sql.Types;
>
> import org.apache.derby.iapi.jdbc.BrokeredConnectionControl;
>+import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
>+import org.apache.derby.iapi.jdbc.EnginePreparedStatement;
>
> /**
> *
>@@ -81,7 +83,7 @@
> */
> public abstract class EmbedPreparedStatement
> extends EmbedStatement
>- implements java.sql.PreparedStatement
>+ implements EnginePreparedStatement
> {
>
> //Moving jdbc2.0 batch related code in this class because callableStatement in jdbc 20 needs
>@@ -1444,11 +1446,11 @@
> * Retrieves the number, types and properties of this PreparedStatement
> * object's parameters.
> *
>- * @return a EmbedParameterSetMetaData object that contains information about the
>+ * @return a EngineParameterMetaData object that contains information about the
> * number, types and properties of this PreparedStatement object's parameters.
> * @exception SQLException if a database access error occurs
> */
>- public EmbedParameterSetMetaData getEmbedParameterSetMetaData()
>+ public EngineParameterMetaData getEmbedParameterSetMetaData()
> throws SQLException
> {
> checkExecStatus();
>
>
>
>
>
Re: svn commit: r421435 - in /db/derby/code/trunk/java:
drda/org/apache/derby/impl/drda/ engine/org/apache/derby/iapi/jdbc/
engine/org/apache/derby/impl/jdbc/
Posted by David Van Couvering <Da...@Sun.COM>.
Thanks for catching that, Sunitha, I added them.
David
Sunitha Kambhampati wrote:
> Thanks David for the commit. I think you forgot to add the engine
> interfaces. maybe missed a svn add ?
>
> Thanks
> Sunitha.
>
> davidvc@apache.org wrote:
>
>> Author: davidvc
>> Date: Wed Jul 12 15:05:50 2006
>> New Revision: 421435
>>
>> URL: http://svn.apache.org/viewvc?rev=421435&view=rev
>> Log:
>> DERBY-1015: Define interface between network server and engine through
>> Java interfaces. Contributed by Sunitha Kambhampati. Passes
>> derbynetclientmats.
>>
>>
>> Modified:
>>
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
>>
>>
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
>>
>>
>> db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java
>>
>>
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java
>>
>>
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
>>
>>
>> Modified:
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
>>
>> URL:
>> http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java?rev=421435&r1=421434&r2=421435&view=diff
>>
>> ==============================================================================
>>
>> ---
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
>> (original)
>> +++
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
>> Wed Jul 12 15:05:50 2006
>> @@ -56,7 +56,7 @@
>> import org.apache.derby.iapi.services.sanity.SanityManager;
>> import org.apache.derby.iapi.services.stream.HeaderPrintWriter;
>> import org.apache.derby.iapi.tools.i18n.LocalizedResource;
>> -import org.apache.derby.impl.jdbc.EmbedParameterSetMetaData;
>> +import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
>> import org.apache.derby.impl.jdbc.EmbedSQLException;
>> import org.apache.derby.impl.jdbc.Util;
>>
>> @@ -3948,7 +3948,7 @@
>> String strVal;
>> PreparedStatement ps = stmt.getPreparedStatement();
>> int codePoint;
>> - EmbedParameterSetMetaData pmeta = null;
>> + EngineParameterMetaData pmeta = null;
>> Vector paramDrdaTypes = new Vector();
>> Vector paramLens = new Vector();
>> ArrayList paramExtPositions = null;
>> @@ -4095,7 +4095,7 @@
>> * @throws SQLException
>> */
>> private ArrayList readAndSetParams(int i, DRDAStatement stmt, int
>> - drdaType,
>> EmbedParameterSetMetaData pmeta,
>> + drdaType,
>> EngineParameterMetaData pmeta,
>> ArrayList paramExtPositions,
>> int paramLenNumBytes)
>> throws DRDAProtocolException, SQLException
>> @@ -5804,7 +5804,7 @@
>> {
>> PreparedStatement ps = stmt.getPreparedStatement();
>> ResultSetMetaData rsmeta = ps.getMetaData();
>> - EmbedParameterSetMetaData pmeta = stmt.getParameterMetaData();
>> + EngineParameterMetaData pmeta = stmt.getParameterMetaData();
>> int numElems = 0;
>> if (e == null || e instanceof SQLWarning)
>> {
>> @@ -5856,7 +5856,7 @@
>>
>> ResultSet rs = null;
>> ResultSetMetaData rsmeta = null;
>> - EmbedParameterSetMetaData pmeta = null;
>> + EngineParameterMetaData pmeta = null;
>> if (!stmt.needsToSendParamData)
>> rs = stmt.getResultSet();
>> if (rs == null) // this is a CallableStatement, use
>> parameter meta data
>> @@ -5952,7 +5952,7 @@
>> * @throws SQLException
>> */
>> private void writeSQLDTAGRP(DRDAStatement stmt, ResultSetMetaData
>> rsmeta, - EmbedParameterSetMetaData pmeta,
>> + EngineParameterMetaData pmeta,
>> int colStart, int colEnd, boolean first)
>> throws DRDAProtocolException, SQLException
>> {
>> @@ -6695,7 +6695,7 @@
>> * @throws DRDAProtocolException
>> * @throws SQLException
>> */
>> - private void writeSQLDAGRP(ResultSetMetaData rsmeta,
>> EmbedParameterSetMetaData pmeta, int elemNum, boolean rtnOutput)
>> + private void writeSQLDAGRP(ResultSetMetaData rsmeta,
>> EngineParameterMetaData pmeta, int elemNum, boolean rtnOutput)
>> throws DRDAProtocolException, SQLException
>> {
>> //jdbc uses offset of 1
>> @@ -6831,14 +6831,14 @@
>> }
>>
>> - private void writeSQLUDTGRP(ResultSetMetaData rsmeta,
>> EmbedParameterSetMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>> + private void writeSQLUDTGRP(ResultSetMetaData rsmeta,
>> EngineParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>> throws DRDAProtocolException,SQLException
>> {
>> writer.writeByte(CodePoint.NULLDATA);
>>
>> }
>>
>> - private void writeSQLDOPTGRP(ResultSetMetaData rsmeta,
>> EmbedParameterSetMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>> + private void writeSQLDOPTGRP(ResultSetMetaData rsmeta,
>> EngineParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>> throws DRDAProtocolException,SQLException
>> {
>>
>> @@ -6858,7 +6858,7 @@
>> }
>>
>>
>> - private void writeSQLDXGRP(ResultSetMetaData rsmeta,
>> EmbedParameterSetMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>> + private void writeSQLDXGRP(ResultSetMetaData rsmeta,
>> EngineParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
>> throws DRDAProtocolException,SQLException
>> {
>> // Null indicator indicates we have data
>>
>> Modified:
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
>>
>> URL:
>> http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java?rev=421435&r1=421434&r2=421435&view=diff
>>
>> ==============================================================================
>>
>> ---
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
>> (original)
>> +++
>> db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
>> Wed Jul 12 15:05:50 2006
>> @@ -39,10 +39,11 @@
>> import org.apache.derby.iapi.jdbc.BrokeredPreparedStatement;
>> import org.apache.derby.iapi.jdbc.EngineConnection;
>> import org.apache.derby.iapi.jdbc.EngineStatement;
>> +import org.apache.derby.iapi.jdbc.EnginePreparedStatement;
>> +import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
>> import org.apache.derby.iapi.reference.JDBC30Translation;
>> import org.apache.derby.iapi.sql.execute.ExecutionContext;
>> import org.apache.derby.iapi.util.StringUtil;
>> -import org.apache.derby.impl.jdbc.EmbedParameterSetMetaData;
>> import org.apache.derby.impl.jdbc.Util;
>>
>> /**
>> @@ -81,7 +82,7 @@
>> protected byte [] rslsetflg; // Result Set Flags
>> protected int maxrslcnt; // Maximum Result set count
>> protected PreparedStatement ps; // Prepared statement
>> - protected EmbedParameterSetMetaData stmtPmeta; // param metadata
>> + protected EngineParameterMetaData stmtPmeta; // param metadata
>> protected boolean isCall;
>> protected String procName; // callable statement's
>> method name
>> private int[] outputTypes; // jdbc type for output
>> parameter or NOT_OUTPUT_PARAM
>> @@ -537,11 +538,7 @@
>> */
>> protected PreparedStatement getPreparedStatement() throws
>> SQLException
>> {
>> - if (ps instanceof BrokeredPreparedStatement)
>> - return (PreparedStatement)(
>> - ((BrokeredPreparedStatement)
>> ps).getStatement());
>> - else
>> - return ps;
>> + return ps;
>> }
>>
>>
>> @@ -1153,7 +1150,7 @@
>> {
>> if (ps != null && ps instanceof CallableStatement)
>> {
>> - EmbedParameterSetMetaData pmeta =
>> getParameterMetaData();
>> + EngineParameterMetaData pmeta = getParameterMetaData();
>>
>> return Math.min(pmeta.getPrecision(index),
>> FdocaConstants.NUMERIC_MAX_PRECISION);
>> @@ -1174,7 +1171,7 @@
>> {
>> if (ps != null && ps instanceof CallableStatement)
>> {
>> - EmbedParameterSetMetaData pmeta =
>> getParameterMetaData();
>> + EngineParameterMetaData pmeta = getParameterMetaData();
>> return
>> Math.min(pmeta.getScale(index),FdocaConstants.NUMERIC_MAX_PRECISION);
>> }
>> else @@ -1324,7 +1321,7 @@
>>
>> private void setupCallableStatementParams(CallableStatement cs)
>> throws SQLException
>> {
>> - EmbedParameterSetMetaData pmeta = getParameterMetaData();
>> + EngineParameterMetaData pmeta = getParameterMetaData();
>> int numElems = pmeta.getParameterCount();
>>
>> for ( int i = 0; i < numElems; i ++)
>> @@ -1555,31 +1552,21 @@
>>
>>
>> /** - * Get parameter metadata from EmbedPreparedStatement or
>> - * BrokeredPreparedStatement. We use reflection because we don't
>> know which
>> - * we have.
>> - * - * @return EmbedParameterSetMetaData for the prepared
>> statement. + * Retrieve the ParameterMetaData for the prepared
>> statement. + * To do so, use the engine defined interfaces:
>> + * @see org.apache.derby.iapi.jdbc.EnginePreparedStatement
>> + * @see org.apache.derby.iapi.jdbc.EngineParameterMetaData +
>> * @return EngineParameterMetaData for the prepared statement. *
>> Note: there is no separate BrokeredParameterSetMetaData.
>> */
>> - protected EmbedParameterSetMetaData getParameterMetaData() throws
>> SQLException
>> + protected EngineParameterMetaData getParameterMetaData() throws
>> SQLException
>> {
>> if (stmtPmeta != null)
>> return stmtPmeta;
>>
>> - EmbedParameterSetMetaData pmeta = null;
>> - Class[] getParameterMetaDataParam = {};
>> - try {
>> - Method sh =
>> -
>> getPreparedStatement().getClass().getMethod("getEmbedParameterSetMetaData",
>> getParameterMetaDataParam);
>> - pmeta = (EmbedParameterSetMetaData)
>> - sh.invoke(getPreparedStatement(),null);
>> - stmtPmeta = pmeta;
>> - }
>> - catch (Exception e) {
>> - handleReflectionException(e);
>> - }
>> - return stmtPmeta;
>> + stmtPmeta =
>> ((EnginePreparedStatement)ps).getEmbedParameterSetMetaData();
>> + + return stmtPmeta;
>> }
>>
>> /**
>>
>> Modified:
>> db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java
>>
>> URL:
>> http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java?rev=421435&r1=421434&r2=421435&view=diff
>>
>> ==============================================================================
>>
>> ---
>> db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java
>> (original)
>> +++
>> db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredPreparedStatement.java
>> Wed Jul 12 15:05:50 2006
>> @@ -32,7 +32,7 @@
>> obtained through the BrokeredStatementControl
>> getRealPreparedStatement method.
>> */
>> public class BrokeredPreparedStatement extends BrokeredStatement
>> - implements PreparedStatement
>> + implements EnginePreparedStatement
>> {
>>
>> /**
>> @@ -46,6 +46,21 @@
>> this.sql = sql;
>> }
>>
>> + /**
>> + * Imitate the getParameterMetaData() function in JDBC 3.0
>> + *
>> + * Retrieves the number, types and properties of this
>> PreparedStatement
>> + * object's parameters.
>> + *
>> + * @return a EngineParameterMetaData object that contains
>> information about the
>> + * number, types and properties of this PreparedStatement
>> object's parameters.
>> + * @exception SQLException if a database access error occurs
>> + */
>> + public EngineParameterMetaData getEmbedParameterSetMetaData()
>> + throws SQLException
>> + {
>> + return
>> ((EnginePreparedStatement)getPreparedStatement()).getEmbedParameterSetMetaData();
>>
>> + }
>> /**
>> * A prepared SQL query is executed and its ResultSet is returned.
>> *
>>
>> Modified:
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java
>>
>> URL:
>> http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java?rev=421435&r1=421434&r2=421435&view=diff
>>
>> ==============================================================================
>>
>> ---
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java
>> (original)
>> +++
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedParameterSetMetaData.java
>> Wed Jul 12 15:05:50 2006
>> @@ -26,6 +26,7 @@
>> import org.apache.derby.iapi.types.DataTypeUtilities;
>> import org.apache.derby.iapi.reference.JDBC30Translation;
>> import org.apache.derby.iapi.reference.SQLState;
>> +import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
>>
>> import java.sql.SQLException;
>> import java.sql.Types;
>> @@ -37,13 +38,12 @@
>> * It provides the parameter meta data for callable & prepared
>> statements.
>> * The subclass in Local30 actually implements ParameterMetaData
>> interface.
>> *
>> - * Our middle-tier servers or tools (eg. drda network server) can use
>> it this way:
>> - * import org.apache.derby.impl.jdbc.EmbedPreparedStatement;
>> - * import org.apache.derby.impl.jdbc.EmbedParameterSetMetaData;
>> - *
>> - * EmbedParameterSetMetaData pmeta = ((EmbedPreparedStatement)
>> ps).getEmbedParameterSetMetaData();
>> + * For use of ParameterMetaData functionality in network server,
>> please do not use
>> + * this class directly. Instead use the method available on
>> EnginePreparedStatement
>> + * @see org.apache.derby.iapi.jdbc.EngineParameterMetaData
>> + * @see org.apache.derby.iapi.jdbc.EnginePreparedStatement
>> */
>> -public class EmbedParameterSetMetaData
>> +public class EmbedParameterSetMetaData implements
>> EngineParameterMetaData
>> {
>>
>> private final ParameterValueSet pvs;
>>
>> Modified:
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
>>
>> URL:
>> http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java?rev=421435&r1=421434&r2=421435&view=diff
>>
>> ==============================================================================
>>
>> ---
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
>> (original)
>> +++
>> db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
>> Wed Jul 12 15:05:50 2006
>> @@ -70,6 +70,8 @@
>> import java.sql.Types;
>>
>> import org.apache.derby.iapi.jdbc.BrokeredConnectionControl;
>> +import org.apache.derby.iapi.jdbc.EngineParameterMetaData;
>> +import org.apache.derby.iapi.jdbc.EnginePreparedStatement;
>>
>> /**
>> *
>> @@ -81,7 +83,7 @@
>> */
>> public abstract class EmbedPreparedStatement
>> extends EmbedStatement
>> - implements java.sql.PreparedStatement
>> + implements EnginePreparedStatement
>> {
>>
>> //Moving jdbc2.0 batch related code in this class because
>> callableStatement in jdbc 20 needs
>> @@ -1444,11 +1446,11 @@
>> * Retrieves the number, types and properties of this
>> PreparedStatement
>> * object's parameters.
>> *
>> - * @return a EmbedParameterSetMetaData object that contains
>> information about the
>> + * @return a EngineParameterMetaData object that contains
>> information about the
>> * number, types and properties of this PreparedStatement object's
>> parameters.
>> * @exception SQLException if a database access error occurs
>> */
>> - public EmbedParameterSetMetaData getEmbedParameterSetMetaData()
>> + public EngineParameterMetaData getEmbedParameterSetMetaData()
>> throws SQLException
>> {
>> checkExecStatus();
>>
>>
>>
>>
>>
>