Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jdbc: Support isWrapperFor() and unwrap() methods #73

Closed
Totktonada opened this issue Nov 1, 2018 · 2 comments · Fixed by #154
Closed

jdbc: Support isWrapperFor() and unwrap() methods #73

Totktonada opened this issue Nov 1, 2018 · 2 comments · Fixed by #154
Assignees
Labels
Milestone

Comments

@Totktonada
Copy link
Member

It is required by the JDBC standard.

@Totktonada Totktonada added the jdbc label Nov 1, 2018
@Totktonada Totktonada added this to the JDBC MVP milestone Nov 1, 2018
@nicktorwald
Copy link

It's required to be implemented at least by following interfaces from the java.sql package

Connection
Statement,
PreparedStatement
CallableStatement
DatabaseMetaData
ParameterMetaData
ResultSetMetaData
ResultSet

@nicktorwald
Copy link

nicktorwald commented Mar 19, 2019

Connection, Statement, and PreparedStatement have been already done in the scope of #134

nicktorwald pushed a commit that referenced this issue Mar 19, 2019
Right now we only can support HOLD_CURSORS_OVER_COMMIT due to lack of
Tarantool transaction support and, possibly, cursors. So, in terms of
HOLD_CURSORS_OVER_COMMIT we always load a result set completely and
it can be used as long as it is opened.

Implement the holdability support (next HS) for SQLDatabaseMetaData in
part of getting a default holdability and checking proper support.

Implement HS for SQLConnection in part of producing new statements and
prepared statements (but excluding CallableStatements due to lack of
implementation).

Implement HS for SQL(Prepared)Statement as well as for
SQLResultSet which is produced by the statements.

Some part of this feature requires the implementation of
java.sql.Wrapper for SQLConnection and SQL(Prepared)Statement. So now
they fully implement the interface.

Add missed checks for an open status of JDBC components which are
required by the specification.

Some methods start returning appropriate SQLException subclasses when
corresponding errors occur. Add SQLStates enumeration to help to produce
the errors with the standard SQL states.

Finally, JDBCBridge is no longer aware of the SQLResultSet class. Only
Statement implementations are responsible for building of new result
sets according to the specification design. Next plan is to completely
avoid JDBCBridge logic and transfer it to an inner helper inside the
Statement implementations.

Closes: #87
Affects: #73, #199
nicktorwald pushed a commit that referenced this issue Mar 19, 2019
Right now we only can support HOLD_CURSORS_OVER_COMMIT due to lack of
Tarantool transaction support and, possibly, cursors. So, in terms of
HOLD_CURSORS_OVER_COMMIT we always load a result set completely and
it can be used as long as it is opened.

Implement the holdability support (next HS) for SQLDatabaseMetaData in
part of getting a default holdability and checking proper support.

Implement HS for SQLConnection in part of producing new statements and
prepared statements (but excluding CallableStatements due to lack of
implementation).

Implement HS for SQL(Prepared)Statement as well as for
SQLResultSet which is produced by the statements.

Some part of this feature requires the implementation of
java.sql.Wrapper for SQLConnection and SQL(Prepared)Statement. So now
they fully implement the interface.

Add missed checks for an open status of JDBC components which are
required by the specification.

Some methods start returning appropriate SQLException subclasses when
corresponding errors occur. Add SQLStates enumeration to help to produce
the errors with the standard SQL states.

Finally, JDBCBridge is no longer aware of the SQLResultSet class. Only
Statement implementations are responsible for building of new result
sets according to the specification design. Next plan is to completely
avoid JDBCBridge logic and transfer it to an inner helper inside the
Statement implementations.

Closes: #87
Affects: #73, #119
Totktonada pushed a commit that referenced this issue Mar 21, 2019
Right now we only can support HOLD_CURSORS_OVER_COMMIT due to lack of
Tarantool transaction support and, possibly, cursors. So, in terms of
HOLD_CURSORS_OVER_COMMIT we always load a result set completely and
it can be used as long as it is opened.

Implement the holdability support (next HS) for SQLDatabaseMetaData in
part of getting a default holdability and checking proper support.

Implement HS for SQLConnection in part of producing new statements and
prepared statements (but excluding CallableStatements due to lack of
implementation).

Implement HS for SQL(Prepared)Statement as well as for
SQLResultSet which is produced by the statements.

Some part of this feature requires the implementation of
java.sql.Wrapper for SQLConnection and SQL(Prepared)Statement. So now
they fully implement the interface.

Add missed checks for an open status of JDBC components which are
required by the specification.

Some methods start returning appropriate SQLException subclasses when
corresponding errors occur. Add SQLStates enumeration to help to produce
the errors with the standard SQL states.

Finally, JDBCBridge is no longer aware of the SQLResultSet class. Only
Statement implementations are responsible for building of new result
sets according to the specification design. Next plan is to completely
avoid JDBCBridge logic and transfer it to an inner helper inside the
Statement implementations.

Closes: #87
Affects: #73, #119
nicktorwald added a commit that referenced this issue Apr 8, 2019
Add missed implementation of Wrapper interface for SQLDatabaseMetadata,
SQLResultSet, and SQL ResultSetMetaData classes.

Closes: #73
@nicktorwald nicktorwald self-assigned this Apr 9, 2019
nicktorwald added a commit that referenced this issue Apr 16, 2019
Add missed implementation of Wrapper interface for SQLDatabaseMetadata,
SQLResultSet, and SQL ResultSetMetaData classes.

Closes: #73
nicktorwald added a commit that referenced this issue Apr 17, 2019
Support isWrapperFor() and unwrap() methods
nicktorwald added a commit that referenced this issue Apr 17, 2019
Add missed implementation of Wrapper interface for SQLDatabaseMetadata,
SQLResultSet, and SQL ResultSetMetaData classes.

Closes: #73
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants