Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
None
-
None
-
None
-
None
-
Reproduced on MacOS X and Debian GNU/Linux amd64
Connecting to MySQL server
Description
Using bzr/launchpad snapshot revision 40, connecting to MySQL.
Given the table:
CREATE TABLE `oldfmpro` (
...
`Filing_Date1` date DEFAULT NULL,
...
`Prio_FF_Date1` date DEFAULT NULL,
...
)
and the view
CREATE OR REPLACE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `natpha_ddl` AS
select ..., if(((`oldfmpro`.`Prio_FF_Date1` + interval 30 month) is not null),(`oldfmpro`.`Prio_FF_Date1` + interval 30 month),(`oldfmpro`.`Filing_Date1` + interval 30 month)) AS `NATPHA` from `oldfmpro` where ((`oldfmpro`.`Filing_Num` is not null) and (`oldfmpro`.`Ctry_Short` = 'WO') and (`oldfmpro`.`IngJur` like '%ajt%') and (`oldfmpro`.`Filing_Date1` >= (curdate() + interval -(30) month))) order by if(((`oldfmpro`.`Prio_FF_Date1` + interval 30 month) is not null),(`oldfmpro`.`Prio_FF_Date1` + interval 30 month),(`oldfmpro`.`Filing_Date1` + interval 30 month));
When calling mysql_fetch_field on "SELECT * FROM natpha_ddl", for column NATPHA, mariadb client library for C returns:
{name = 0x285b2b8 "NATPHA", ... type = MYSQL_TYPE_NEWDATE, ...}Which breaks MySQL Connector/C++, which does not support this column type; it throws error:
sql::InvalidArgumentException("allocate_buffer_for_field: invalid rbind data type");
Background:
LibreOffice, in its "master" (trunk) development, has swapped out libmysqlclient for the MariaDB client library for C, and for the time being uses it through MySQL Connector/C+. This breaks this scenario. We are using a bzr snapshot because version 1.0.0 has API incompatibilities with libmysqlclient, which are used by MySQL Connector/C+:
- missing symbols mysql_library_init and mysql_library_end
- missing parameter "cipher" to mysql_ssl_set
Full table definition:
CREATE TABLE `oldfmpro` (
`Agent` varchar(254) DEFAULT NULL,
`Ann_Fees1` date DEFAULT NULL,
`Attention` varchar(254) DEFAULT NULL,
`IngJur` char(3) DEFAULT NULL,
`Client` varchar(254) DEFAULT NULL,
`Client_Copy` varchar(254) DEFAULT NULL,
`Comments` varchar(254) DEFAULT NULL,
`Ctry_Short` varchar(254) DEFAULT NULL,
`Prio_Ctry1` char(2) DEFAULT '',
`Prio_Ctry2` char(2) DEFAULT '',
`Prio_Ctry3` char(2) DEFAULT '',
`Prio_Ctry4` char(2) DEFAULT '',
`Prio_Ctry5` char(2) DEFAULT '',
`Prio_Ctry6` char(2) DEFAULT '',
`Exp_Date1` date DEFAULT NULL,
`File_Code` varchar(254) DEFAULT NULL,
`File_Num` varchar(254) DEFAULT NULL,
`Filing_Num` varchar(254) DEFAULT NULL,
`Filing_Date1` date DEFAULT NULL,
`Grant_Num` varchar(254) DEFAULT NULL,
`Grant_Date1` date DEFAULT NULL,
`Inventor1` varchar(50) DEFAULT '',
`Inventor2` varchar(50) DEFAULT '',
`Inventor3` varchar(50) DEFAULT '',
`Inventor4` varchar(50) DEFAULT NULL,
`Inventor5` varchar(50) DEFAULT '',
`Inventor6` varchar(50) DEFAULT '',
`Inventor7` varchar(50) DEFAULT '',
`Inventor8` varchar(50) DEFAULT '',
`Inventor9` varchar(50) DEFAULT '',
`Inventor10` varchar(50) DEFAULT '',
`Keywords` varchar(254) DEFAULT NULL,
`Our_Ref` varchar(254) DEFAULT NULL,
`Owner1` varchar(254) NOT NULL DEFAULT '',
`Owner2` varchar(254) DEFAULT NULL,
`Owner3` varchar(100) DEFAULT '',
`Owner4` varchar(100) DEFAULT '',
`Owner5` varchar(100) DEFAULT '',
`Owner6` varchar(100) DEFAULT '',
`Owner7` varchar(100) DEFAULT '',
`Owner8` varchar(100) DEFAULT '',
`Owner9` varchar(100) DEFAULT '',
`Owner10` varchar(100) DEFAULT '',
`Prio_SN` varchar(254) DEFAULT NULL,
`Prio_SN2` varchar(30) DEFAULT NULL,
`Prio_SN3` varchar(30) DEFAULT NULL,
`Prio_SN4` varchar(30) DEFAULT NULL,
`Prio_SN5` varchar(30) DEFAULT NULL,
`Prio_SN6` varchar(30) DEFAULT NULL,
`Prio_SN7` varchar(30) DEFAULT NULL,
`Prio_SN8` varchar(30) DEFAULT NULL,
`Prio_FF_Date1` date DEFAULT NULL,
`Prio_FF_Date2` date DEFAULT NULL,
`Prio_FF_Date3` date DEFAULT NULL,
`Prio_FF_Date4` date DEFAULT NULL,
`Prio_FF_Date5` date DEFAULT NULL,
`Prio_FF_Date6` date DEFAULT NULL,
`Prio_FF_Date7` date DEFAULT NULL,
`Prio_FF_Date8` date DEFAULT NULL,
`Pub_Num` varchar(254) DEFAULT NULL,
`Pub_Date1` date DEFAULT NULL,
`Related_Files` varchar(254) DEFAULT NULL,
`Summary` varchar(254) DEFAULT NULL,
`Y_ref` varchar(254) DEFAULT NULL,
`State_dep` varchar(254) DEFAULT NULL,
`State_dep_num` varchar(254) DEFAULT NULL,
`chg_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`fmpro_id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`pay_ann_fee` char(1) NOT NULL DEFAULT 'Y',
`assistant` varchar(7) DEFAULT NULL,
`Prio_Ctry7` char(2) DEFAULT NULL,
`Prio_Ctry8` char(2) DEFAULT NULL,
`abandon` char(1) DEFAULT NULL,
`chg_by` varchar(50) NOT NULL,
PRIMARY KEY (`fmpro_id`)
) ENGINE=MyISAM AUTO_INCREMENT=4474 DEFAULT CHARSET=latin1
Full view definition:
CREATE OR REPLACE ALGORITHM=UNDEFINED DEFINER=`alex`@`%` SQL SECURITY DEFINER VIEW `natpha_ddl` AS select `oldfmpro`.`File_Num` AS `file_num`,`oldfmpro`.`Owner1` AS `Owner1`,`oldfmpro`.`Filing_Num` AS `filing_num`,`oldfmpro`.`Filing_Date1` AS `filing_date1`,`oldfmpro`.`Prio_FF_Date1` AS `Prio_FF_Date1`,if(((`oldfmpro`.`Prio_FF_Date1` + interval 30 month) is not null),(`oldfmpro`.`Prio_FF_Date1` + interval 30 month),(`oldfmpro`.`Filing_Date1` + interval 30 month)) AS `NATPHA` from `oldfmpro` where ((`oldfmpro`.`Filing_Num` is not null) and (`oldfmpro`.`Ctry_Short` = 'WO') and (`oldfmpro`.`IngJur` like '%ajt%') and (`oldfmpro`.`Filing_Date1` >= (curdate() + interval -(30) month))) order by if(((`oldfmpro`.`Prio_FF_Date1` + interval 30 month) is not null),(`oldfmpro`.`Prio_FF_Date1` + interval 30 month),(`oldfmpro`.`Filing_Date1` + interval 30 month));