From: Kemet Date: May 7 2011 10:08pm Subject: Re: SSQLS with BINARY column is sometimes not escaped List-Archive: http://lists.mysql.com/plusplus/9343 Message-Id: <5B8DB8A71A7B40268C1DE9C460266C70@PCWillemQ> MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit Update of the problem: After inspecting some more the internal variables of the mysqlpp::sql_blob and adding some debug code, I found the following: A) assigning value from within the C++ program: * The buffer_.counted_.type_.num_ is set to 25, which corresponds to "VARCHAR NOT NULL". * If escape_q is called, it returns TRUE. * Everything works as expected. B) reading data from database: * num_ is set to 51, which corresponds to "VARCHAR NULL". Indeed, I mistakenly forgot to add the "NOT NULL" when creating the table. * If escape_q is called, it returns FALSE. * Value doesn't get escaped when adding it to a query (with q << mysqlpp::quote << value). I corrected the table definition and now I get the same type 25 in both cases. Question remains if there is a bug in escape_q (returning false for all "nullable" types), or that this is caused because of a mismatch between database definition (allowing NULL) and SSQLS definition (not allowing NULL).