[JDBC-39] Boolean - BIT(1) - columns are returned as byte[] via some DB connections Created: 10/Sep/12 Updated: 12/Sep/12 Resolved: 12/Sep/12 |
|
| Status: | Resolved |
| Project: | java.jdbc |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Sean Corfield | Assignee: | Sean Corfield |
| Resolution: | Declined | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Specifically using the MySQL connector 5.0.x or 5.1.x against a Tungsten Connector proxy |
||
| Description |
|
The root cause appears to be that rs.getObject( i ) seems to take the field flags into effect over the basic java.sql.Types values. In this case a BIT(1) column comes back from MySQL as type 16 (BOOLEAN), flags UNSIGNED. From Tungsten it comes back as type 16, flags BINARY BLOB UNSIGNED. The resultset-seq construction code is pretty cavalier about using just getObject() instead of more specific types so this might be the start of a smarter approach to that. |
| Comments |
| Comment by Sean Corfield [ 10/Sep/12 5:51 PM ] |
|
Further update: this looks to be a configuration or version issue with the Tungsten Connector setup as we've been able to repro the problem in one environment but it works as expected in a newer environment. May still go ahead with this change anyway since I believe it's a good change for robustness, but it looks lower priority right now. |
| Comment by Sean Corfield [ 10/Sep/12 6:51 PM ] |
|
Pushed a fix for this but would like more hands on this in SNAPSHOT form before declaring it resolved. |
| Comment by Sean Corfield [ 10/Sep/12 7:46 PM ] |
|
Tungsten's Connector defeats this fix. Even tho' the fields have an underlying mysqlType value of 16 (BOOLEAN), (.getColumnType) returns -3 (byte[] presumably) so Boolean is not forced as I had hoped. |
| Comment by Sean Corfield [ 12/Sep/12 7:51 PM ] |
|
The underlying behavior is a quirk of the Tungsten Connector configuration which we believe we've successfully corrected. Given the result of (.getColumnType) is -3, I'm not sure anything could be done in code to address this, so I'm going to resolve this as invalid. |
| Comment by Sean Corfield [ 12/Sep/12 7:52 PM ] |
|
Not a code issue. |