[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.
[ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420677 ] David Van Couvering commented on DERBY-1015: I looked at the patches, and they look quite good, very simple and direct, and creating what I think is a very useful and important abstraction between the network server and the engine. I think it would be good to complete the abstraction and not depend directly on any engine classes, including EmbedSQLException, but I would argue that should be a separate JIRA. I'll work on getting this committed. Define interface between network server and engine through Java interfaces. --- Key: DERBY-1015 URL: http://issues.apache.org/jira/browse/DERBY-1015 Project: Derby Type: Improvement Components: JDBC Reporter: Daniel John Debrunner Assignee: Daniel John Debrunner Fix For: 10.2.0.0 Attachments: Derby1015.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.txt, derby1015.stat.txt API between the network server and engine is not well defined, leading to inconsistent multiple ways of handling the different objects returned, such as reflection, explicit casting etc. This in turn has lead to bugs such as DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by the application that should be hidden. Define interfaces, such as EngineConnection, that both EmbedConnection and BrokeredConnection implement. Thus the network server can rely on the fact that any connection it obtains will implement EngineConnection, and call the required methods through that interface. Most likely will need EngineConnection, EnginePreparedStatement and EngineResultSet.. These interfaces would be internal to derby and not exposed to applications. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.
[ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420702 ] Daniel John Debrunner commented on DERBY-1015: -- Since David is further ahead than me here I will defer to him for the commit Define interface between network server and engine through Java interfaces. --- Key: DERBY-1015 URL: http://issues.apache.org/jira/browse/DERBY-1015 Project: Derby Type: Improvement Components: JDBC Reporter: Daniel John Debrunner Assignee: Daniel John Debrunner Fix For: 10.2.0.0 Attachments: Derby1015.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.txt, derby1015.stat.txt API between the network server and engine is not well defined, leading to inconsistent multiple ways of handling the different objects returned, such as reflection, explicit casting etc. This in turn has lead to bugs such as DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by the application that should be hidden. Define interfaces, such as EngineConnection, that both EmbedConnection and BrokeredConnection implement. Thus the network server can rely on the fact that any connection it obtains will implement EngineConnection, and call the required methods through that interface. Most likely will need EngineConnection, EnginePreparedStatement and EngineResultSet.. These interfaces would be internal to derby and not exposed to applications. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.
[ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420160 ] Sunitha Kambhampati commented on DERBY-1015: Please note, there are two pending patches waiting for review. derby1015.diff.txt, derby1015.p2.diff.txt. These two patches will cover the case of adding new interfaces for PreparedStatement, ResultSet, ParameterMetaData and make use of these interfaces in the server code. Since Dan already added the new interfaces for Statement and Connection., I believe with these two patches(derby1015.diff.txt, derby1015.p2.diff.txt), the cases mentioned in the jira description will be covered. As an aside, I did a search for Embed* in drda code and came across cases where the server code uses EmbedSQLException. I wonder if the server should be using EmbedSQLException or should a interface be defined for use in the server. Comments/Thoughts ? Thanks. Define interface between network server and engine through Java interfaces. --- Key: DERBY-1015 URL: http://issues.apache.org/jira/browse/DERBY-1015 Project: Derby Type: Improvement Components: JDBC Reporter: Daniel John Debrunner Assignee: Daniel John Debrunner Fix For: 10.2.0.0 Attachments: Derby1015.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.txt, derby1015.stat.txt API between the network server and engine is not well defined, leading to inconsistent multiple ways of handling the different objects returned, such as reflection, explicit casting etc. This in turn has lead to bugs such as DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by the application that should be hidden. Define interfaces, such as EngineConnection, that both EmbedConnection and BrokeredConnection implement. Thus the network server can rely on the fact that any connection it obtains will implement EngineConnection, and call the required methods through that interface. Most likely will need EngineConnection, EnginePreparedStatement and EngineResultSet.. These interfaces would be internal to derby and not exposed to applications. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.
[ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12418344 ] Sunitha Kambhampati commented on DERBY-1015: Thanks for the feedbac, Dan. Looking at this some more, I think it is better to define a new interface for ParameterMetaData for the following reasons: -- no need to import a impl class in iapi -- this implementation seems clean for use in server. So the new interface EnginePreparedStatement will return EngineParameterMetaData instead of EmbedParameterSetMetaData. Here are the two interfaces I am proposing: NEW INTERFACE: EngineParameterMetaData /** * An internal api only, mainly for use in the network server. * * This interface imitates the ParameterMetaData interface from JDBC3.0 * We want to provide the ParameterMetaData functionality to JDKs before JDBC3.0. * org.apache.derby.iapi.jdbc.EnginePreparedStatement interface returns an object * of this type on a getEmbedParameterSetMetaData * Once,JDK1.3 stops being supported, this interface can be removed and * instead the JDBC 3.0 class ParameterMetaData can be used */ public interface EngineParameterMetaData { public int getParameterCount(); public int isNullable(int param) throws SQLException; public boolean isSigned(int param) throws SQLException; public int getPrecision(int param) throws SQLException; public int getScale(int param) throws SQLException; public int getParameterType(int param) throws SQLException; public String getParameterTypeName(int param) throws SQLException; public String getParameterClassName(int param) throws SQLException; public int getParameterMode(int param) throws SQLException; } (Note: javadoc comments for the methods will be added in the actual patch) EmbedParameterSetMetaData implements EngineParameterMetaData --- NEW INTERFACE: EnginePreparedStatement /** * Additional methods the embedded engine exposes on its * PreparedStatement object implementations. An internal api only, mainly * for the network server. Allows consistent interaction between embedded * PreparedStatement and Brokered PreparedStatements. * */ public interface EnginePreparedStatement extends PreparedStatement { /** * Immitate the getParameterMetaData() that is in JDBC 3.0 * Once,JDK1.3 stops being supported, instead of returning EngineParameterMetaData * the JDBC 3.0 Class - ParameterMetaData can be used. * * 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; } EmbedPreparedStatement implements EnginePreparedStatement BrokeredPreparedStatement implements EnginePreparedStatement -- Thoughts/comments ? Thanks. Define interface between network server and engine through Java interfaces. --- Key: DERBY-1015 URL: http://issues.apache.org/jira/browse/DERBY-1015 Project: Derby Type: Improvement Components: JDBC Reporter: Daniel John Debrunner Assignee: Daniel John Debrunner Fix For: 10.2.0.0 API between the network server and engine is not well defined, leading to inconsistent multiple ways of handling the different objects returned, such as reflection, explicit casting etc. This in turn has lead to bugs such as DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by the application that should be hidden. Define interfaces, such as EngineConnection, that both EmbedConnection and BrokeredConnection implement. Thus the network server can rely on the fact that any connection it obtains will implement EngineConnection, and call the required methods through that interface. Most likely will need EngineConnection, EnginePreparedStatement and EngineResultSet.. These interfaces would be internal to derby and not exposed to applications. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.
[ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12412847 ] Sunitha Kambhampati commented on DERBY-1015: I am proposing the following interface for the EnginePreparedStatement for use in the network server. snippet: +public interface EnginePreparedStatement extends PreparedStatement { + + /** + * Immitate the function in JDBC 3.0 + * + * Retrieves the number, types and properties of this PreparedStatement + * object's parameters. + * + * @return a EmbedParameterSetMetaData 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() +throws SQLException; + + +} EmbedPreparedStatement implements EnginePreparedStatement BrokeredPreparedStatement implements EnginePreparedStatement Thoughts/comments ? Thanks. Define interface between network server and engine through Java interfaces. --- Key: DERBY-1015 URL: http://issues.apache.org/jira/browse/DERBY-1015 Project: Derby Type: Improvement Components: JDBC Reporter: Daniel John Debrunner Assignee: Daniel John Debrunner Fix For: 10.2.0.0 API between the network server and engine is not well defined, leading to inconsistent multiple ways of handling the different objects returned, such as reflection, explicit casting etc. This in turn has lead to bugs such as DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by the application that should be hidden. Define interfaces, such as EngineConnection, that both EmbedConnection and BrokeredConnection implement. Thus the network server can rely on the fact that any connection it obtains will implement EngineConnection, and call the required methods through that interface. Most likely will need EngineConnection, EnginePreparedStatement and EngineResultSet.. These interfaces would be internal to derby and not exposed to applications. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.
[ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12412857 ] Daniel John Debrunner commented on DERBY-1015: -- I wonder if this new interface should be returning EmbedParameterSetMetaData or should an interface be defined for the parameter meta data? Of course once jdk 1.3 stops being supported the returned type could be the regular JDBD class. Define interface between network server and engine through Java interfaces. --- Key: DERBY-1015 URL: http://issues.apache.org/jira/browse/DERBY-1015 Project: Derby Type: Improvement Components: JDBC Reporter: Daniel John Debrunner Assignee: Daniel John Debrunner Fix For: 10.2.0.0 API between the network server and engine is not well defined, leading to inconsistent multiple ways of handling the different objects returned, such as reflection, explicit casting etc. This in turn has lead to bugs such as DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by the application that should be hidden. Define interfaces, such as EngineConnection, that both EmbedConnection and BrokeredConnection implement. Thus the network server can rely on the fact that any connection it obtains will implement EngineConnection, and call the required methods through that interface. Most likely will need EngineConnection, EnginePreparedStatement and EngineResultSet.. These interfaces would be internal to derby and not exposed to applications. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira