Bug #43637 Unknown type '246 in column 10 of 24 in binary-encoded result set
Submitted: 13 Mar 2009 16:53 Modified: 18 Mar 2009 12:51
Reporter: Andrea Villardino Email Updates:
Status: Not a Bug Impact on me:
None 
Category:Connector / J Severity:S2 (Serious)
Version:5.1.31-community-log OS:Linux (inux version 2.6.18-92.1.22.el5)
Assigned to: CPU Architecture:Any
Tags: 246, binary-encoded, Result Set, type

[13 Mar 2009 16:53] Andrea Villardino
Description:
I suppose I have a problem with Driver JDBC mysql-connector-java-5.1.7-bin.jar

I am receiving SQL exception from a java application running on JBOSS like this:

activityId:-- 
vers:--undefined-- 
java.sql.SQLException: Unknown type '246 in column 10 of 24 in binary-encoded result set. 
javax.ejb.EJBException: java.sql.SQLException: Unknown type '246 in column 10 of 24 in binary-encoded result set. 
        at it.osra.next.server.mod730_4.FornituraBean.ejbLoad(FornituraBean.java:436) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

The query the java application is trying to do when the error occurs is the following:
		227910 Prepare	SELECT IDFORNITURA, ANNOFISC,      DESCRIZIONE, IDINTERMED,  IDSEDEPER,     IDSOSTITUTO, TIPO,        RETTIFICATIVO, INTEGRATIVO, STATO,       TRATTENERE,    RIMBORSARE, FORNITURA,   DATARICEVUTA,  DATAELABORAZIONE, IDGRPPD,     IDUTENTEPR,    IDUTENTEINS, DATAINS,     IDUTENTEVAR,   DATAVAR, CHECKSUM, ESITO, DATANOTIFICA FROM   FORNITURA WHERE  IDFORNITURA = ?
090313 14:09:30227910 Close stmt	
		227910 Query	SET autocommit=0

The table is:

(root@localhost) [DBNAMEutf8] 5.1.31-community-log MASTER>show create table FORNITURA\G
*************************** 1. row ***************************
       Table: FORNITURA
Create Table: CREATE TABLE `FORNITURA` (
  `IDFORNITURA` int(11) NOT NULL AUTO_INCREMENT,
  `ANNOFISC` int(11) NOT NULL,
  `IDINTERMED` int(11) NOT NULL,
  `IDSEDEPER` int(11) DEFAULT NULL,
  `IDSOSTITUTO` int(11) DEFAULT NULL,
  `TIPO` enum('C','T') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'C',
  `RETTIFICATIVO` enum('N','S') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
  `INTEGRATIVO` enum('N','S') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
  `STATO` enum('C','L','E','R') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'C',
  `TRATTENERE` decimal(16,2) NOT NULL DEFAULT '0.00',
  `RIMBORSARE` decimal(16,2) NOT NULL DEFAULT '0.00',
  `FORNITURA` longblob,
  `DATARICEVUTA` date DEFAULT NULL,
  `DATAELABORAZIONE` datetime DEFAULT NULL,
  `IDGRPPD` int(11) NOT NULL,
  `IDUTENTEPR` int(11) NOT NULL,
  `IDUTENTEINS` int(11) NOT NULL,
  `DATAINS` datetime NOT NULL,
  `IDUTENTEVAR` int(11) DEFAULT NULL,
  `DATAVAR` datetime DEFAULT NULL,
  `DESCRIZIONE` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `CHECKSUM` bigint(20) unsigned NOT NULL DEFAULT '0',
  `ESITO` longblob,
  `DATANOTIFICA` datetime DEFAULT NULL,
  PRIMARY KEY (`IDFORNITURA`),
  KEY `IX_FORNITURA_IDINTERMED` (`IDINTERMED`),
  KEY `IX_FORNITURA_IDSEDEPER` (`IDSEDEPER`),
  KEY `IX_FORNITURA_IDSOSTITUTO` (`IDSOSTITUTO`),
  KEY `IX_FORNITURA_IDGRPPD` (`IDGRPPD`),
  KEY `IX_FORNITURA_IDUTENTEPR` (`IDUTENTEPR`),
  KEY `IX_FORNITURA_IDUTENTEINS` (`IDUTENTEINS`),
  KEY `IX_FORNITURA_IDUTENTEVAR` (`IDUTENTEVAR`),
  CONSTRAINT `0_495` FOREIGN KEY (`IDINTERMED`) REFERENCES `INTERMEDIARIO` (`IDINTERMED`),
  CONSTRAINT `0_497` FOREIGN KEY (`IDSEDEPER`) REFERENCES `SEDE` (`IDSEDE`),
  CONSTRAINT `0_499` FOREIGN KEY (`IDSOSTITUTO`) REFERENCES `PERSONA` (`IDPERS`),
  CONSTRAINT `0_501` FOREIGN KEY (`IDGRPPD`) REFERENCES `GRPPROTDATI` (`IDGRPPD`),
  CONSTRAINT `0_503` FOREIGN KEY (`IDUTENTEPR`) REFERENCES `UTENTE` (`IDUTENTE`),
  CONSTRAINT `0_505` FOREIGN KEY (`IDUTENTEINS`) REFERENCES `UTENTE` (`IDUTENTE`),
  CONSTRAINT `0_507` FOREIGN KEY (`IDUTENTEVAR`) REFERENCES `UTENTE` (`IDUTENTE`)
) ENGINE=InnoDB AUTO_INCREMENT=23567 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
1 row in set (0.00 sec)

How to repeat:
Create the table `FORNITURA` on mysql 5.1.31-community-log.

Insert something into `FORNITURA`.

Use the Driver JDBC mysql-connector-java-5.1.7-bin.jar.

Deploy a java application on JBOSS that try to esecute the prepared statement:
SELECT IDFORNITURA, ANNOFISC,      DESCRIZIONE, IDINTERMED,  IDSEDEPER,     IDSOSTITUTO, TIPO,        RETTIFICATIVO, INTEGRATIVO, STATO,       TRATTENERE,    RIMBORSARE, FORNITURA,   DATARICEVUTA,  DATAELABORAZIONE, IDGRPPD,     IDUTENTEPR,    IDUTENTEINS, DATAINS,     IDUTENTEVAR,   DATAVAR, CHECKSUM, ESITO, DATANOTIFICA FROM   FORNITURA WHERE  IDFORNITURA = ?
[18 Mar 2009 12:51] Andrea Villardino
A Jboss node was not properly configured and was using an old driver JDBC. So I think that I run into bug #14609, that is already resolved.
Sorry.
[18 Mar 2009 15:32] Tonci Grgin
Andrea, no problem, main thing is it works.

Thanks for your interest in MySQL.