Bug #69786 | Java throws exception fetching TIME(6) column | ||
---|---|---|---|
Submitted: | 18 Jul 2013 23:24 | Modified: | 29 Jul 2013 17:33 |
Reporter: | Bill Karwin (Candidate Quality Contributor) (OCA) | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | Connector / J | Severity: | S3 (Non-critical) |
Version: | 5.1.22 | OS: | Any |
Assigned to: | Alexander Soklakov | CPU Architecture: | Any |
[18 Jul 2013 23:24]
Bill Karwin
[18 Jul 2013 23:39]
Bill Karwin
test JDBC type mapping
Attachment: TestTypeMap.java (application/octet-stream, text), 3.81 KiB.
[19 Jul 2013 6:03]
MySQL Verification Team
Hello Bill, Thank you for the bug report and the test case. Verified as described. Thanks, Umesh
[19 Jul 2013 6:05]
MySQL Verification Team
// java -cp ".:mysql-connector-java-commercial-5.1.22-bin.jar" TestTypeMap Column=1 ColumnName=bi SQLType=-5 SQLTypeName=BIGINT Precision=20 Scale=0 MetadataClassName=java.lang.Long Column=2 ColumnName=biu SQLType=-5 SQLTypeName=BIGINT UNSIGNED Precision=20 Scale=0 MetadataClassName=java.math.BigInteger Column=3 ColumnName=i SQLType=4 SQLTypeName=INT Precision=11 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=4 ColumnName=iu SQLType=4 SQLTypeName=INT UNSIGNED Precision=10 Scale=0 MetadataClassName=java.lang.Long ObjectClassName=java.lang.Long Value="123" Column=5 ColumnName=mi SQLType=4 SQLTypeName=MEDIUMINT Precision=9 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=6 ColumnName=miu SQLType=4 SQLTypeName=MEDIUMINT UNSIGNED Precision=8 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=7 ColumnName=si SQLType=5 SQLTypeName=SMALLINT Precision=6 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=8 ColumnName=siu SQLType=5 SQLTypeName=SMALLINT UNSIGNED Precision=5 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=9 ColumnName=ti SQLType=-6 SQLTypeName=TINYINT Precision=4 Scale=0 MetadataClassName=java.lang.Integer Column=10 ColumnName=tiu SQLType=-6 SQLTypeName=TINYINT UNSIGNED Precision=3 Scale=0 MetadataClassName=java.lang.Integer Column=11 ColumnName=f SQLType=7 SQLTypeName=FLOAT Precision=12 Scale=31 MetadataClassName=java.lang.Float ObjectClassName=java.lang.Float Value="3.14" Column=12 ColumnName=ff SQLType=8 SQLTypeName=DOUBLE Precision=22 Scale=31 MetadataClassName=java.lang.Double ObjectClassName=java.lang.Double Value="3.14" Column=13 ColumnName=n SQLType=3 SQLTypeName=DECIMAL Precision=9 Scale=2 MetadataClassName=java.math.BigDecimal ObjectClassName=java.math.BigDecimal Value="3.14" Column=14 ColumnName=d SQLType=91 SQLTypeName=DATE Precision=10 Scale=0 MetadataClassName=java.sql.Date ObjectClassName=java.sql.Date Value="2013-07-19" Column=15 ColumnName=dt SQLType=93 SQLTypeName=DATETIME Precision=19 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-19 16:45:49.0" Column=16 ColumnName=dtp SQLType=93 SQLTypeName=DATETIME Precision=26 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-19 16:45:49.216083" Column=17 ColumnName=t SQLType=92 SQLTypeName=TIME Precision=10 Scale=0 MetadataClassName=java.sql.Time ObjectClassName=java.sql.Time Value="16:45:49" Column=18 ColumnName=tp SQLType=92 SQLTypeName=TIME Precision=17 Scale=0 MetadataClassName=java.sql.Time SQLException: Bad format for Time '1231231231231231231231231231233.143.143.14 2013-07-192013-07-19 16:45:492013-07-19 16:45:49.2160816:45:4916:45:49.2160832013-07-19 16:45:492013-07-19 16:45:49.2160832013char�varchar longvarcharïlongblob mediumblobblotinyblolongtext mediumtexttextinytextAA,B' in column 18 SQLState: S1009 VendorError: 0 Column=19 ColumnName=ts SQLType=93 SQLTypeName=TIMESTAMP Precision=19 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-19 16:45:49.0" Column=20 ColumnName=tsp SQLType=93 SQLTypeName=TIMESTAMP Precision=26 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-19 16:45:49.216083" Column=21 ColumnName=y SQLType=91 SQLTypeName=YEAR Precision=4 Scale=0 MetadataClassName=java.sql.Date ObjectClassName=java.sql.Date Value="2013-01-01" Column=22 ColumnName=c SQLType=1 SQLTypeName=CHAR Precision=255 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="char" Column=23 ColumnName=bc SQLType=-2 SQLTypeName=BINARY Precision=255 Scale=0 MetadataClassName=[B Column=24 ColumnName=v SQLType=12 SQLTypeName=VARCHAR Precision=255 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="varchar" Column=25 ColumnName=lv SQLType=12 SQLTypeName=VARCHAR Precision=32767 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="longvarchar" Column=26 ColumnName=vb SQLType=-3 SQLTypeName=VARBINARY Precision=255 Scale=0 MetadataClassName=[B Column=27 ColumnName=b1 SQLType=-7 SQLTypeName=BIT Precision=1 Scale=0 MetadataClassName=java.lang.Boolean Column=28 ColumnName=b2 SQLType=-3 SQLTypeName=BIT Precision=64 Scale=0 MetadataClassName=[B Column=29 ColumnName=lb SQLType=-4 SQLTypeName=LONGBLOB Precision=2147483647 Scale=0 MetadataClassName=[B Column=30 ColumnName=mb SQLType=-4 SQLTypeName=MEDIUMBLOB Precision=16777215 Scale=0 MetadataClassName=[B Column=31 ColumnName=b SQLType=-4 SQLTypeName=BLOB Precision=65535 Scale=0 MetadataClassName=[B Column=32 ColumnName=tb SQLType=-3 SQLTypeName=TINYBLOB Precision=255 Scale=0 MetadataClassName=[B Column=33 ColumnName=lt SQLType=-1 SQLTypeName=VARCHAR Precision=2147483647 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="longtext" Column=34 ColumnName=mt SQLType=-1 SQLTypeName=VARCHAR Precision=16777215 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="mediumtext" Column=35 ColumnName=tx SQLType=-1 SQLTypeName=VARCHAR Precision=65535 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="text" Column=36 ColumnName=tt SQLType=-1 SQLTypeName=VARCHAR Precision=255 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="tinytext" Column=37 ColumnName=e SQLType=1 SQLTypeName=CHAR Precision=1 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="A" Column=38 ColumnName=s SQLType=1 SQLTypeName=CHAR Precision=5 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="A,B"
[29 Jul 2013 9:14]
Alexander Soklakov
Hi Bill, Thanks for your report. You need to upgrade c/J to at least 5.1.23 version where we fixed several problems with milliseconds and precision support. Here is the output of your class with 5.1.25 driver and 5.6.11 server: === Column=1 ColumnName=bi SQLType=-5 SQLTypeName=BIGINT Precision=20 Scale=0 MetadataClassName=java.lang.Long Column=2 ColumnName=biu SQLType=-5 SQLTypeName=BIGINT UNSIGNED Precision=20 Scale=0 MetadataClassName=java.math.BigInteger Column=3 ColumnName=i SQLType=4 SQLTypeName=INT Precision=11 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=4 ColumnName=iu SQLType=4 SQLTypeName=INT UNSIGNED Precision=10 Scale=0 MetadataClassName=java.lang.Long ObjectClassName=java.lang.Long Value="123" Column=5 ColumnName=mi SQLType=4 SQLTypeName=MEDIUMINT Precision=9 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=6 ColumnName=miu SQLType=4 SQLTypeName=MEDIUMINT UNSIGNED Precision=8 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=7 ColumnName=si SQLType=5 SQLTypeName=SMALLINT Precision=6 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=8 ColumnName=siu SQLType=5 SQLTypeName=SMALLINT UNSIGNED Precision=5 Scale=0 MetadataClassName=java.lang.Integer ObjectClassName=java.lang.Integer Value="123" Column=9 ColumnName=ti SQLType=-6 SQLTypeName=TINYINT Precision=4 Scale=0 MetadataClassName=java.lang.Integer Column=10 ColumnName=tiu SQLType=-6 SQLTypeName=TINYINT UNSIGNED Precision=3 Scale=0 MetadataClassName=java.lang.Integer Column=11 ColumnName=f SQLType=7 SQLTypeName=FLOAT Precision=12 Scale=31 MetadataClassName=java.lang.Float ObjectClassName=java.lang.Float Value="3.14" Column=12 ColumnName=ff SQLType=8 SQLTypeName=DOUBLE Precision=22 Scale=31 MetadataClassName=java.lang.Double ObjectClassName=java.lang.Double Value="3.14" Column=13 ColumnName=n SQLType=3 SQLTypeName=DECIMAL Precision=9 Scale=2 MetadataClassName=java.math.BigDecimal ObjectClassName=java.math.BigDecimal Value="3.14" Column=14 ColumnName=d SQLType=91 SQLTypeName=DATE Precision=10 Scale=0 MetadataClassName=java.sql.Date ObjectClassName=java.sql.Date Value="2013-07-29" Column=15 ColumnName=dt SQLType=93 SQLTypeName=DATETIME Precision=19 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-29 13:02:31.0" Column=16 ColumnName=dtp SQLType=93 SQLTypeName=DATETIME Precision=26 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-29 13:02:31.538874" Column=17 ColumnName=t SQLType=92 SQLTypeName=TIME Precision=10 Scale=0 MetadataClassName=java.sql.Time ObjectClassName=java.sql.Time Value="13:02:31" Column=18 ColumnName=tp SQLType=92 SQLTypeName=TIME Precision=17 Scale=0 MetadataClassName=java.sql.Time ObjectClassName=java.sql.Time Value="13:02:31" Column=19 ColumnName=ts SQLType=93 SQLTypeName=TIMESTAMP Precision=19 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-29 13:02:31.0" Column=20 ColumnName=tsp SQLType=93 SQLTypeName=TIMESTAMP Precision=26 Scale=0 MetadataClassName=java.sql.Timestamp ObjectClassName=java.sql.Timestamp Value="2013-07-29 13:02:31.538874" Column=21 ColumnName=y SQLType=91 SQLTypeName=YEAR Precision=4 Scale=0 MetadataClassName=java.sql.Date ObjectClassName=java.sql.Date Value="2013-01-01" Column=22 ColumnName=c SQLType=1 SQLTypeName=CHAR Precision=255 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="char" Column=23 ColumnName=bc SQLType=-2 SQLTypeName=BINARY Precision=255 Scale=0 MetadataClassName=[B Column=24 ColumnName=v SQLType=12 SQLTypeName=VARCHAR Precision=255 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="varchar" Column=25 ColumnName=lv SQLType=12 SQLTypeName=VARCHAR Precision=32767 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="longvarchar" Column=26 ColumnName=vb SQLType=-3 SQLTypeName=VARBINARY Precision=255 Scale=0 MetadataClassName=[B Column=27 ColumnName=b1 SQLType=-7 SQLTypeName=BIT Precision=1 Scale=0 MetadataClassName=java.lang.Boolean Column=28 ColumnName=b2 SQLType=-3 SQLTypeName=BIT Precision=64 Scale=0 MetadataClassName=[B Column=29 ColumnName=lb SQLType=-4 SQLTypeName=LONGBLOB Precision=2147483647 Scale=0 MetadataClassName=[B Column=30 ColumnName=mb SQLType=-4 SQLTypeName=MEDIUMBLOB Precision=16777215 Scale=0 MetadataClassName=[B Column=31 ColumnName=b SQLType=-4 SQLTypeName=BLOB Precision=65535 Scale=0 MetadataClassName=[B Column=32 ColumnName=tb SQLType=-3 SQLTypeName=TINYBLOB Precision=255 Scale=0 MetadataClassName=[B Column=33 ColumnName=lt SQLType=-1 SQLTypeName=VARCHAR Precision=2147483647 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="longtext" Column=34 ColumnName=mt SQLType=-1 SQLTypeName=VARCHAR Precision=16777215 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="mediumtext" Column=35 ColumnName=tx SQLType=-1 SQLTypeName=VARCHAR Precision=65535 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="text" Column=36 ColumnName=tt SQLType=-1 SQLTypeName=VARCHAR Precision=255 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="tinytext" Column=37 ColumnName=e SQLType=1 SQLTypeName=CHAR Precision=1 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="A" Column=38 ColumnName=s SQLType=1 SQLTypeName=CHAR Precision=5 Scale=0 MetadataClassName=java.lang.String ObjectClassName=java.lang.String Value="A,B" === I close this report as "Not a Bug", but feel free to reopen it if you find any other problem here.
[29 Jul 2013 17:33]
Bill Karwin
Confirmed; I downloaded Connector/J 5.1.25 and my test runs without throwing an exception. Thanks for the update.